Wie zu propagieren einer exception in java
Ich bin ein C-Programmierer sind und nur zu lernen, einige java vor kurzem, weil ich bin die Entwicklung einer android-Anwendung. Zurzeit bin ich in einer situation. Folgende ist die.
public Class ClassA{
public ClassA();
public void MyMethod(){
try{
//Some code here which can throw exceptions
}
catch(ExceptionType1 Excp1){
//Here I want to show one alert Dialog box for the exception occured for the user.
//but I am not able to show dialog in this context. So I want to propagate it
//to the caller of this method.
}
catch(ExceptionType2 Excp2){
//Here I want to show one alert Dialog box for the exception occured for the user.
//but I am not able to show dialog in this context. So I want to propagate it
//to the caller of this method.
}
}
}
Nun ich wan zu verwenden, rufen Sie die Methode MyMethod() irgendwo in einer anderen Klasse. Wenn jemand kann mir einige code-snippet zum weitergeben der exceptions an den Aufrufer des MyMethod (), so dass ich anzeigen können Sie in einem Dialogfeld in der Aufrufer-Methode.
Sorry, Wenn ich nicht so viel klar und seltsam in den Weg, diese Frage zu stellen.
- Siehe auch stackoverflow.com/questions/409563/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach nicht, fangen Sie die Ausnahme in Erster Linie, und ändern Sie Ihre Methode Erklärung, so dass es propagieren Sie:
Wenn Sie müssen einige Maßnahmen zu ergreifen und dann propagieren, können Sie rethrow es:
Hier
ExceptionType2
ist nicht gefangen in all - es werden nur propagieren sich automatisch ein.ExceptionType1
gefangen ist, angemeldet, und dann erneut ausgelöst.Es ist nicht eine gute Idee zu haben, catch-Blöcke, die nur rethrow eine Ausnahme - es sei denn, es gibt einige subtile Grund (z.B. um zu verhindern, dass eine allgemeinere catch-block aus der Handhabung) Sie sollten in der Regel einfach entfernen Sie die catch-block statt.
Nicht fangen es und rethrow wieder. Nur tun Sie das und fangen Sie es in der Ort, den Sie wollen
Beispiel
Nur rethrow Ausnahme
throw Excp1;
Müssen Sie den Typ der Ausnahme der
MyMthod()
Erklärung wie dieseOder einfach weglassen
try
überhaupt, da Sie nicht mehr die Handhabung der Ausnahmen, es sei denn, Sie setzen einige zusätzlichen code in den catch-Anweisungen Dinge, die Sie mit der Ausnahme, bevor erneute auslösen es.Ich Mach es immer so :
dann, wenn Sie die Funktion aufrufen