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
-
-
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