Exception bei Dividion durch Null abfangen.



  • Hallo zusammen,

    ich frage mich wie ich eine Division druch null abfangen kann.

    try
    {
    int i = 10;
    int j = 0;
    int k = i / j;
    }
    catch(...)
    {
    .
    .
    }

    funktioniert leider nicht. Im Visual Studio von MS kann man
    unter Optionen noch StructuredExceptionHanding SEH
    einstellen, damit springt das Programm in den Catch Teil.

    Ich möchte aber ANSI-Konform programmieren und da springt
    das Programm dort nicht hinein. Was gibt es für Möglichkeiten.
    Ich könnte natürlich vorher abfragen ob j = 0 ist, bevor ich teile.
    Aber ich möchte ja gezielt mit Exceptions arbeiten.

    Vielen Dank
    Stephan



  • Hallo

    Lies dir doch einmal den Artikel Exception hier durch:

    http://www.kharchi.de/

    chrische



  • Frag ab ob j == 0 ist und wirf dann eine Exception. Was bei Disvion durch 0 passiert, ist nicht definiert. Dass eine Exception geworfen wird, ist vielleicht eine Gefälligkeit einer Implementierung.

    Unter Linux bekommst du da meistens ein Signal, was dann deinen Prozess sterben lässt. Standardkonform ist auf jeden Fall nur, vor der Division auf != 0 zu testen.



  • Erst einmal vielen Dank,

    ich habe viel Java und C# programmiert, da ist man ja wirklich
    verwöhnt was das Exception Handling angeht. Weil einfach alles
    als Exception geworfen wird. Wie gesagt beim VisualStudio kann
    man structured exception handling einstellen und kommt
    zumindest einmal in den catch-block bei einer Division durch Null.
    Nur wenn man dann anfängt so ein Programm auf zB Linux zu portieren,
    ist das sehr gefährlich.

    Grüße und guten Rutsch
    Stephan


Anmelden zum Antworten