@ExceptionHandler behandelt die ausgelösten Ausnahmen nicht

8

Ich habe eine Methode in meinem Controller, die die Ausnahmen behandelt, die von der Anwendung ausgelöst werden. So habe ich eine Methode wie diese.

%Vor%

Und um es auszuprobieren, wenn es funktioniert, werfe ich eine NullPointerException in eine andere Methode in einem anderen Methodencontroller:

%Vor%

Nachdem die Ausnahme ausgelöst wurde, wird sie in der JSP ausgedruckt, aber sie wird nicht meine showError () -Methode werfen (Ich habe dort einen Haltepunkt gesetzt und er tritt nie ein). Die showError () -Methode fängt die Ausnahme ab und zeigt je nach Ausnahmetyp verschiedene Fehlerseiten (obwohl sie jetzt immer die gleiche Fehlerseite anzeigt). Wenn ich auf die URL / Fehler gehe, zeigt es die Fehlerseite, so dass die Methode showError () OK ist.

Ich benutze Frühling 3.

Was kann das Problem sein?

Danke.

    
Javi 20.05.2010, 08:32
quelle

2 Antworten

7

Wenn Sie sich Ihre Protokolle ansehen, werden Sie wahrscheinlich Folgendes sehen:

  

java.lang.IllegalStateException :   Nicht unterstütztes Argument   [ org.springframework.ui.Model ] für    @ExceptionHandler Methode

Mit anderen Worten, @ExceptionHandler Methoden dürfen keinen Model Parameter deklarieren (siehe Dokumente ).

Entfernen Sie diesen Parameter (den Sie sowieso nicht verwenden), und es sollte wie erwartet funktionieren.

    
skaffman 20.05.2010, 09:48
quelle
0

Wenn Sie Ausnahmen global (außerhalb Ihres Controllers) behandeln möchten, können Sie eine annotierte Klasse @ControllerAdvice verwenden, in die Sie Ihre annotierten Methoden @ExceptionHandler einfügen.

siehe Ссылка für ein Beispiel. Und Ссылка für die Verbesserungen, die im Frühling 4 gemacht werden.

    
Joram 04.09.2014 06:43
quelle
yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warningyii\base\ErrorException

PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/lib64/php/modules/mongodb.so (/usr/lib64/php/modules/mongodb.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/mongodb.so.so (/usr/lib64/php/modules/mongodb.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '382858',
    'url' => 'exceptionhandler-doesnt-handle-the-thrown-exceptions',
];

$_SESSION = [
    '__flash' => [],
];