programing

Android 예외 처리 모범 사례?

nasanasas 2020. 10. 27. 08:18
반응형

Android 예외 처리 모범 사례?


내 앱이 충돌하면 Android에서 앱이 충돌하여 종료해야한다는 메시지를 받기 전에 몇 초 동안 멈 춥니 다. 그래서 나는 일반과 함께 내 앱의 모든 예외를 잡을 생각이었습니다.

try {
    // ... 
} catch(Exception e) { 
    // ...
} 

그리고 ActivityAndroid 덕분에 지연되는 대신 애플리케이션이 즉시 충돌했다는 것을 설명하고 사용자에게 오류 세부 정보가 포함 된 메일을 보낼 수있는 기회를 제공 하는 새 파일 만드십시오 . 이를 수행하는 더 좋은 방법이 있습니까, 아니면 권장하지 않습니까?

업데이트 : 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

반응형