Frage

Kann einer von euch erklären, was sind die Unterschiede zwischen throw, throws und Throwable und zu verwenden, wenn das?

War es hilfreich?

Lösung

  • throws. Wird verwendet, wenn Methoden zu schreiben, zu erklären, dass das fragliche Verfahren wirft die angegebene (geprüft) Ausnahme

    Im Gegensatz zu dem geprüften Ausnahmen, Laufzeit Ausnahmen (Nullpointerexceptions usw.) kann, ohne dass das Verfahren declare throws NullPointerException geworfen werden.

  • throw: Anweisung, um tatsächlich die Ausnahme zu werfen. (Oder genauer gesagt, die Throwable ).

    Das Schlüsselwort throw wird durch einen Verweis auf eine Throwable (in der Regel eine Ausnahme) gefolgt.

Beispiel:

eingeben Bild Beschreibung hier


  • Throwable. Eine Klasse, die Sie verlängern müssen Ihre eigenen, benutzerdefinierten zu erstellen, throwable

Beispiel:

 image description hier

eingeben

Andere Tipps

  • throw. Anweisungsobjekt t zu werfen, wo t instanceof java.lang.Throwable wahr sein muss
  • throws: a. Methode Signatur geprüfte Ausnahmen zu spezifizieren nach dieser Methode thrown
  • java.lang.Throwable. Der Muttertyp aller Objekte, die (und gefangen) geworfen werden können

Sehen Sie hier für ein Tutorial auf Ausnahmen mit.

Das ist wirklich leicht zu verstehen.

Das java.lang.Throwable :

  

Die Throwable Klasse ist   die übergeordnete Klasse aller Fehler und   Ausnahmen in der Programmiersprache Java. Nur   Objekte, die Instanzen hierfür sind   Klasse (oder einer ihrer Unterklassen) sind   durch die Java Virtual Machine geworfen oder   kann durch die Java geworfen werden   throw Aussage.   In ähnlicher Weise nur diese Klasse oder eine   ihre Unterklassen kann das Argument   Geben Sie in einer catch Klausel.    Mehr

Das Schlüsselwort wirft in Methodendeklaration verwendet wird, dies angeben, welche Art von Ausnahme [Throwable Klasse] wir aus diesem Verfahren erwarten können.

Das Schlüsselwort throw verwendet wird, um ein Objekt zu werfen, die Instanz der Klasse Throwable ist.


Lest sehen einige Beispiele:

Wir schaffen sie selbst eine Ausnahmeklasse

public class MyException super Exception {

}

Das schaffen wir eine Methode, die ein Objekt aus unserer Ausnahmeklasse erstellen und wirft es Schlüsselwort mit throw .

private  void throwMeAException() throws MyException //We inform that this method throws an exception of MyException class
{
  Exception e = new MyException (); //We create an exception 

  if(true) {
    throw e; //We throw an exception 
  } 
}

Wenn wir gehen Methode throwMeAException() verwenden, werden wir in bestimmten Weise kümmern sich um sie gezwungen, weil wir die Informationen haben, dass es etwas wirft, in diesem Fall haben wir drei Optionen.

Erste Option ist mit Block versuchen und fangen die Ausnahme zu behandeln:

private void catchException() {

   try {
     throwMeAException();
   }
   catch(MyException e) {
     // Here we can serve only those exception that are instance of MyException
   }
}

Zweite Option ist die Ausnahme zu übergeben

   private void passException() throws MyException {

       throwMeAException(); // we call the method but as we throws same exception we don't need try catch block.

   }

Dritte Optionen sind zu fangen und wieder werfen die Ausnahme

private void catchException() throws Exception  {

   try {
     throwMeAException();
   }
   catch(Exception e) {
      throw e;
   }
}

wieder aufnehmen, wenn Sie benötigen eine Aktion stoppen können Sie die Exception werfen, die zurück gehen werden, bis nicht-Server durch einen try-catch-Block. Überall dort, wo Sie Methode verwenden, die eine Ausnahme auslöst, sollten Sie es von Try-Catch-Block behandeln oder die Erklärungen auf Ihre Methoden hinzufügen.

Die Ausnahme von dieser Regel ist java.lang.RuntimeException diejenigen haben nicht erklärt werden. Dies ist eine andere Geschichte als den Aspekt der Ausnahme Gebrauch.

werfen - es verwendet wird, eine Exception.The throw-Anweisung zu werfen erfordert ein einziges Argument: ein throwable Klassenobjekt

wirft - Dies wird verwendet, gibt an, dass die Methode Ausnahme auslösen kann

Throwable - Dies ist die übergeordnete Klasse aller Fehler und Ausnahmen in der Programmiersprache Java. Sie können Objekte werfen nur, dass stammen aus der Throwable Klasse. throwable enthält eine Momentaufnahme des Ausführungsstapels ihres Gewinde zum Zeitpunkt es erstellt wurde

Throw ist für das Werfen Ausnahme, throws verwendet (wenn ich richtig geraten) verwendet diese Methode, um anzuzeigen, können bestimmte Ausnahme auslösen und die Throwable Klasse ist die Super aller Fehler und Ausnahmen in der Java

Wie Ausnahmen werfen

Wurf:

verwendet wird, um tatsächlich die Ausnahme zu werfen, während wirft, ist deklarative für das Verfahren. Sie sind nicht austauschbar.

throw new MyException("Exception!);

Löst aus:

Es handelt sich hierbei verwendet werden, wenn Sie nicht den Versuch catch-Anweisung in Ihrem Code verwenden, aber Sie wissen, dass diese besondere Klasse der Lage ist, so zu werfen und so Ausnahme (nur geprüfte Ausnahmen). Dann werden sie sie an geeigneter Stelle nicht in Ihrem Code und die Ausnahme an den Aufrufer der Methode geworfen verwenden try catch-Block, sondern schreibt mit der throw-Klausel und wird von ihm behandelt. Auch das wirft Schlüsselwort verwendet wird, wenn die Funktion eine geprüfte Ausnahme auslösen kann.

public void myMethod(int param) throws MyException 

Es gibt 2 Arten von Ausnahmen:
Runtime Ausnahmen (ungeprüft) : zB. Nullpointer, Classcast, ..
Checked Ausnahmen: zB. FileNotFoundException, CloneNotSupportedException, ..

Runtime Ausnahmen sind Ausnahmen, die während der Laufzeit und der Entwickler auftreten sollte nicht versuchen, ihn zu fangen oder zu stoppen. Sie Code schreiben, sie zu vermeiden oder einen Befehl throw , wenn die Fehlerkriterien erfüllt ist. Wir verwenden in der Methode Körper werfen.

public Rational(int num, int denom){
if(denom <= 0) {
  throw new IllegalArgumentException("Denominator must be positive");
}
this.num=num;
this.denom=denom;
}

Jedoch für geprüfte Ausnahmen, die JVM erwartet Sie es zu handhaben und wird Compiler-Fehler geben, wenn nicht behandelt, so dass Sie erklären, dass sie diese Art von Ausnahme auslöst, wie unten in der Methode clone () zu sehen.

Class Employee{
public Employee clone() throws CloneNotSupportedException{
    Employee copy = (Employee)super.clone();
    copy.hireDate = (Date)hireDate.clone();
    return copy;
}
}

Die gleiche Antwort wie oben, aber mit copy-paste Vergnügen :

public class GsonBuilderHelper {
    // THROWS: method throws the specified (checked) exception
    public static Object registerAndRun(String json) throws Exception {

        // registering of the NaturalDeserializer
        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.registerTypeAdapter(Object.class, new NaturalDeserializer());
        Gson gson = gsonBuilder.create();

        Object natural = null;
        try {
            // calling the NaturalDeserializer
            natural = gson.fromJson(json, Object.class);
        } catch (Exception e) {
            // json formatting exception mainly
            Log.d("GsonBuilderHelper", "registerAndRun(json) error: " + e.toString());
            throw new Exception(e);  // <---- THROW: instance of class Throwable. 
        }
        return natural;
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top