예외 처리를 위해 printStackTrace ()를 사용하는 것이 나쁜 생각입니까?
이와 같은 Android 예외에서 printStackTrace ()를 사용하는 것이 나쁜 생각입니까?
} catch (Exception e) {
e.printStackTrace();
}
예, 그것은 나쁜 생각입니다. 대신 다음과 같은 목적으로 Android의 내장 로그 클래스를 사용합니다. http://developer.android.com/reference/android/util/Log.html
디버그 메시지, 경고, 오류 등을 기록하는 옵션을 제공합니다.
오류 로깅 :
Log.e(TAG, "message", e)
메시지는 예외가 발생했을 때 시도 된 내용에 대한 설명 일 수 있습니다.
단순히 또는 Log.e(TAG, e)
컨텍스트에, 대한 메시지를 제공하지 않으려 는 경우
그런 다음 코드를 실행하는 동안 하단의 로그 콘솔을 클릭하고 TAG 또는 로그 메시지 유형을 필터로 사용하여 쉽게 검색 할 수 있습니다.
나는 이것이 당신이 필요하다고 믿는다.
catch (Exception e) {
Log.e(TAG,Log.getStackTraceString(e));
}
예. printStackTrace()
그러나 권장되지 않습니다. 특히 안드로이드 볼 수에서 logcat
있지만 지정되지 않은 수준에서 적절한 메시지없이 write- 되는 안드로이드에서는 더욱 그렇습니다 . 대신 예외를 기록하는 적절한 방법은 ...
Log.e(TAG, "Explanation of what was being attempted", e);
예외는 메시지 매개 변수에 추가되지 않고 세 번째 변수로 사용된다. Log
세부 사항을 처리합니다. 메시지 인쇄 (코드에서 수행하려는 작업의 제공 제공) Exception
와의 메시지 및 스택 추적.
질문은 Andriod 응용 프로그램 자주에서 스택 추적으로 인쇄하는 데 유용합니까? 표준 출력이 실행에 표시? 누군가에게 관심을 가질까요?
내 요점은 아무도 표준 출력을 확인하지 않고 오류를 거부하지 않는 방법에 대한 호출은 코드이며 스택 추적 메시지라는 것입니다. 개발시 필요한에만 필요한 경우 액세스 가능한 전역 상수를 설정하고 가동에 확인할 수 있습니다.
} catch (Exception e) {
if(com.foo.MyEnvironmentConstants.isDebugging()) {
e.printStackTrace();
} //else do noting
}
나는 사용을 피하고 printStackTrace()
로깅 시스템과 예외 지원을 사용합니다.
log.log(Level.SEVERE, "Uncaught exception", e);
그에 따른 로깅 처리 방법을 변경할 수 있습니다.
'ProgramingTip' 카테고리의 다른 글
Java에서 제네릭 유형 인스턴스화 (0) | 2020.12.29 |
---|---|
증가 / 누름시 ImageButton의 축적을 변경하는 방법 (0) | 2020.12.29 |
메뉴에 추가하지 않고 WordPress (0) | 2020.12.29 |
Ruby on Rails 3 :“수퍼 클래스 불일치 ...” (0) | 2020.12.29 |
Mongoose에서 하위 문서를 만든 후 채우는 방법은 무엇입니까? (0) | 2020.12.29 |