excepción de capturas en Android

Iliz:

Recibo un error en mi estudio Android después de llamar a un método. Estoy más ansioso por ver si el error es lo que creo que es o no. El error primero habla de un código de respuesta inesperada 500 después wich se apaga y da una excepción grave.

He estado tratando de conseguir la excepción de que proviene de la excepción fatal, pero sin suerte. A mi entender, no puedo coger el código de respuesta inesperada 500.

El error

D/NetworkSecurityConfig: No Network Security Config specified, using platform default
E/Volley: [1668] BasicNetwork.performRequest: Unexpected response code 500 for (website)
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.geotask, PID: 14594
    java.lang.IllegalStateException
        at com.example.geotask.PSHandler$1.onErrorResponse(PSHandler.java:48)
        at com.android.volley.Request.deliverError(Request.java:617)
        at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:104)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Application terminated.

El código que da el error

try {
    psHandler.addNewUser(name, LoginActivity.this, new RetrievedCallback<Void>() {
        @Override
        public void execute(Void input) {
            Intent intent;
            intent = new Intent(LoginActivity.this, MainActivity.class);
            Toast.makeText(LoginActivity.this, "New account created", Toast.LENGTH_SHORT).show();
            startActivity(intent);
            finish();
        }
    });
} catch (IllegalStateException e) {
}

Quité la página web que se refiere. Como se puede ver que estoy tratando de recuperar el posible error que se da en el Logcat, pero no estoy seguro de si soy capaz. Me gustaría saber si soy capaz de evitar el error de la Logcat.

Julio E. Rodríguez Cabañas :

La razón por la que no se puede detectar la excepción se debe a que usted está tratando de atraparlo fuera del método en el que realmente sucede:

try {
    psHandler.addNewUser(name, LoginActivity.this, new RetrievedCallback<Void>() {
        @Override
        public void execute(Void input) {
            throw new IllegalStateException();
        }
    });
} catch (IllegalStateException e) {
    // This line will never be reached because the exception 
    // is not thrown here, but inside the callback method
}

En su lugar, se debe añadir el try/catchinterior del método de devolución de llamada:

psHandler.addNewUser(name, LoginActivity.this, new RetrievedCallback<Void>() {
    @Override
    public void execute(Void input) {
        try {
            throw new IllegalStateException();
        } catch (IllegalStateException e) {
            // This line will be reached
        }
    }
});

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=119797&siteId=1
Recomendado
Clasificación