как работает опция uncaught exceptions?

У меня есть маленькая программка в которой я кидаю исключение и не пытаюсь его обработать. Ожидаемо программа падает и выдаёт stack trace:

2022-07-25 10:03:04.147 17034-17034/android.bignerdranch.quiz E/AndroidRuntime: FATAL EXCEPTION: main
    Process: android.bignerdranch.quiz, PID: 17034
    java.lang.RuntimeException: Unable to start activity ComponentInfo{android.bignerdranch.quiz/android.bignerdranch.quiz.MainActivity}: java.lang.NullPointerException
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3685)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3842)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2252)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loopOnce(Looper.java:201)
        at android.os.Looper.loop(Looper.java:288)
        at android.app.ActivityThread.main(ActivityThread.java:7842)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
     Caused by: java.lang.NullPointerException
        at android.bignerdranch.quiz.MainActivity.onCreate(MainActivity.java:48)
        at android.app.Activity.performCreate(Activity.java:8054)
        at android.app.Activity.performCreate(Activity.java:8034)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1341)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3666)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3842) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2252) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loopOnce(Looper.java:201) 
        at android.os.Looper.loop(Looper.java:288) 
        at android.app.ActivityThread.main(ActivityThread.java:7842) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)

Далее я создаю java exception breakpoint: введите сюда описание изображения

В документации про опцию uncaught exception написано: Select to make the breakpoint work when the specified exception was not caught. В моём понимании это означает, что exception breakpoint, с включенным uncaught exception и выключенным caught exception, сработает только на самом последнем exception, так как если exception was not caught это означает, что именно он положил программу и он был последним.

Тем не менее на моё удивление с breakpoint'ом, указанным на скриншоте, после нажатия кнопки с жучком, программа нигде не останавливается, а просто крашится выдавая тот же самый stack trace.

Вопрос: Как же работает эта опция и для чего она нужна ?


Ответы (0 шт):