Wie kann ich die Nachricht auf eine Ausnahme in JAVA setzen?

7

Ich möchte eine benutzerdefinierte Ausnahmebedingungsnachricht festlegen, bin mir jedoch nicht sicher, wie das geht. Muss ich eine benutzerdefinierte Ausnahmeklasse erstellen oder gibt es dafür einen einfacheren Weg?

Sorry im Voraus, wenn das eine einfache Frage ist, aber ich habe mich online umgesehen und habe nicht viel Glück gehabt.

    
The Crazy Chimp 17.01.2012, 13:05
quelle

7 Antworten

9

Wenn die API eine Ausnahme bietet, die Ihren Anforderungen entspricht (z. B. IllegalArgumentException), verwenden Sie sie einfach und übergeben Sie Ihre Nachricht im Konstruktor.

    
quaylar 17.01.2012, 13:08
quelle
21

Die meisten Standardausnahmeklassen stellen einen Konstruktor bereit, der eine Nachricht verwendet, zum Beispiel:

%Vor%

Die obige Klasse ruft einfach den Konstruktor ihrer Eltern auf, der den Konstruktor ihrer Eltern aufruft, und schließlich gipfelt in:

%Vor%

Wenn Sie eine eigene Ausnahmeklasse erstellen, ist es eine gute Idee, diese Konvention zu befolgen.

    
NPE 17.01.2012 13:07
quelle
8

Sie können die Nachricht nur beim Erstellen der Ausnahme festlegen. Hier ist ein Beispiel, wenn Sie es nach der Erstellung einstellen möchten.

%Vor%     
user5507680 12.11.2015 09:32
quelle
2

Der beste Weg besteht darin, die Ausnahme zu umbrechen.

%Vor%     
Sam 17.01.2012 13:09
quelle
1

Die Exception-Klasse (ihr Parent, eigentlich - Throwable) nimmt eine Nachricht als Argument in ihrem Konstruktor

neue Exception werfen ("Nachricht") / Exception ("Nachricht", innereException);

    
baruch dego 17.01.2012 13:11
quelle
1

Die root Exception Klasse akzeptiert eine String benutzerdefinierte Nachricht, wie (soweit ich das beurteilen kann) alle abgeleiteten Klassen.

Also: Nein, Sie müssen keine benutzerdefinierte Klasse erstellen. Eine der vorhandenen Ausnahmen deckt wahrscheinlich Ihren Fall ab (lesen Sie deren Beschreibungen, um herauszufinden, welche). Wenn keine davon wirklich zufriedenstellend ist, können Sie eine Erweiterung von Exception (oder RuntimeException etc) erstellen und den benutzerdefinierten Nachrichtenkonstruktor pflegen.

    
Carl 17.01.2012 13:12
quelle
0

Probieren Sie diesen Code

aus %Vor%     
Sakthikanth 30.09.2016 10:23
quelle

Tags und Links