Android 예외 처리 모범 사례?
내 앱이 충돌하면 Android에서 앱이 충돌하여 종료해야한다는 메시지를 받기 전에 몇 초 동안 멈 춥니 다. 그래서 나는 일반과 함께 내 앱의 모든 예외를 잡을 생각이었습니다.
try {
// ...
} catch(Exception e) {
// ...
}
그리고 Activity
Android 덕분에 지연되는 대신 애플리케이션이 즉시 충돌했다는 것을 설명하고 사용자에게 오류 세부 정보가 포함 된 메일을 보낼 수있는 기회를 제공 하는 새 파일 을 만드십시오 . 이를 수행하는 더 좋은 방법이 있습니까, 아니면 권장하지 않습니까?
업데이트 : ART가 활성화 된 Nexus 5를 사용하고 있으며 앱 충돌 (원래에 "멈춤")과 관련하여 경험했던 지연을 알지 못합니다. 이제 모든 것이 네이티브 코드이기 때문에 모든 충돌 정보를 얻는 것과 함께 충돌이 즉시 발생합니다. 아마도 넥서스 5는 빠르다. :) 어쨌든 안드로이드의 향후 릴리스에서는 걱정할 필요가 없다 (ART가 안드로이드 L에서 기본 런타임이 될 것이라는 점을 감안하면).
여기에서 참조 링크를 확인하십시오 .
여기에서 ExceptionHandler 라는 클래스를 만듭니다 implements java.lang.Thread.UncaughtExceptionHandler
.
이 수업에서는 스택 트레이스를 생성하고 오류 보고서를 업로드 할 준비를하는 등 생명을 구하는 작업을 수행합니다.
이제 중요한 부분, 즉 예외를 잡는 방법 이 나옵니다 . 매우 간단하지만. 재정의 된 onCreate
메서드 에서 super 메서드를 호출 한 직후 각 활동에 다음 코드 줄을 복사합니다 .
Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));
활동은 다음과 같을 수 있습니다.
public class ForceClose extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));
setContentView(R.layout.main);
}
}
도움이 되었기를 바랍니다...
일반 경고 대화 상자를 사용하여 오류 메시지를 빠르게 표시 할 수 있습니다. 예를 들면 ...
//******************************************
//some generic method
//******************************************
private void doStuff()
{
try
{
//do some stuff here
}
catch(Exception e)
{
messageBox("doStuff", e.getMessage());
}
}
//*********************************************************
//generic dialog, takes in the method name and error message
//*********************************************************
private void messageBox(String method, String message)
{
Log.d("EXCEPTION: " + method, message);
AlertDialog.Builder messageBox = new AlertDialog.Builder(this);
messageBox.setTitle(method);
messageBox.setMessage(message);
messageBox.setCancelable(false);
messageBox.setNeutralButton("OK", null);
messageBox.show();
}
이 메서드에 인쇄 스택 추적과 같은 다른 오류 처리 옵션을 추가 할 수도 있습니다.
Log 클래스에서 "wtf"(끔찍한 실패) 메서드를 찾았습니다. 설명에서 :
시스템 구성에 따라 DropBoxManager에 보고서가 추가되거나 오류 대화 상자와 함께 프로세스가 즉시 종료 될 수 있습니다.
http://developer.android.com/reference/android/util/Log.html
이것이 누군가에게 도움이되기를 바랍니다.
참고URL : https://stackoverflow.com/questions/16561692/android-exception-handling-best-practice
'programing' 카테고리의 다른 글
서명되지 않은 길이는 몇 바이트입니까? (0) | 2020.10.27 |
---|---|
()에있는 MySQL (0) | 2020.10.27 |
C / C ++의 고정 길이 데이터 유형 (0) | 2020.10.27 |
SqlServer 용 C #에서 간단한 SQL 쿼리를 이스케이프하는 방법 (0) | 2020.10.27 |
Intellij Idea-생성 된 변수에 최종 키워드 자동 추가 (0) | 2020.10.26 |