|
You last visited: Today at 20:19
Advertisement
Durch Null teilen mit Try - Catch abfangen.
Discussion on Durch Null teilen mit Try - Catch abfangen. within the .NET Languages forum part of the Coders Den category.
05/05/2013, 17:31
|
#1
|
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
|
Durch Null teilen mit Try - Catch abfangen.
hey,
Ich hab ein kleines Tool geschrieben wo zwei Zufallszahlen aus dem Datum usw generiert werden, und diese mit der entsprechenden Grundrechenart ausgerechnet werden. Nun hab ich versucht durch Null zu teilen, als Ergebnis bekam ich "+unendlich" aus. Eigentlich hatte ich einen Ausnahme-Fehler erwartet, und wollte das durch Null teilen mit einer Try - Catch Abfrage abfangen. Wie soll ich das machen? Es ist alles auf dem Screen.
MfG
|
|
|
05/05/2013, 17:45
|
#2
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
Den Divisor auf 0 Checken 
Ist imo auch der sauberere Weg da ne Exception deutlich Länger braucht.
Warum das ganze so ist, dein Compilere sieht das als einen float an und in der Standartisierung an die er sich hält, schmeisst er keine Exception wie du es gewohnt bist sondern setzt den Wert entsprechend, in diesem Fall positiv Infinit
IEEE floating point - Wikipedia, the free encyclopedia
|
|
|
05/05/2013, 18:03
|
#3
|
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
|
Quote:
Originally Posted by dready
Den Divisor auf 0 Checken 
Ist imo auch der sauberere Weg da ne Exception deutlich Länger braucht.
Warum das ganze so ist, dein Compilere sieht das als einen float an und in der Standartisierung an die er sich hält, schmeisst er keine Exception wie du es gewohnt bist sondern setzt den Wert entsprechend, in diesem Fall positiv Infinit
IEEE floating point - Wikipedia, the free encyclopedia
|
Wenn ich mit ner If - Abfrage den Divisor auf Null checke, wie soll ich dann etwas angeben was er anstatt der Aufgabe macht? Bei Try macht er wenn ein Fehler unterläuft ja unten direkt weiter, bei einer If ja nicht. Logischerweise..
|
|
|
05/05/2013, 18:23
|
#4
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
PsydoCode
If x
{
rechne
}
else
{
werfe fehler
}
|
|
|
05/05/2013, 19:52
|
#5
|
elite*gold: 0
Join Date: Feb 2010
Posts: 7,220
Received Thanks: 6,758
|
Wo ist das Problem? Frag doch einfach die Textbox auf "0" ab?
|
|
|
05/05/2013, 21:11
|
#6
|
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
|
Quote:
Originally Posted by SoNiice
Wo ist das Problem? Frag doch einfach die Textbox auf "0" ab?
|
In dem Programm ging es darum Ausnahme-Fehler per Try-Catch abzufangen.
Hab ich halt als sone Art Übung gemacht, dazu dann halt noch der Zufallsgenerator.
ps. Wenn schon will ich ein Label abfragen.. ^^
|
|
|
05/05/2013, 21:42
|
#7
|
elite*gold: 4
Join Date: Feb 2008
Posts: 3,854
Received Thanks: 1,268
|
Dann frage doch das Label ab? Es müsste ebenso den Text zurückgeben. Und die Eingabe erfolgt doch über eine TextBox? Wieso also nicht das machen, was SoNiice vorgeschlagen hat?
Du gehst viel zu viele Umwege, für Dein Ziel. Und extra das mit try-catch abzufangen, ist noch umständlicher, als es wirklich von Nöten ist.
|
|
|
05/05/2013, 21:55
|
#8
|
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
|
Nein, die Textbox ist nur da um die Null dahin zu cheaten. Die Zahlen werden per Zufallsgenerator über einen klick auf das fette label erstellt.
|
|
|
05/06/2013, 10:21
|
#9
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
Versteh zwar immernochnicht so genau warum das Ding ganz entgegen der Art wie es gedacht ist ne Exception werfen soll :P
Aber wenn es hier tatsächlich nur darum geht das das ganze ein reines Übungsprojekt ist um mit Exception zu spielen
Code:
try
{
float b = 1.0f;
float a = 0.0f;
float c = b / a;
if (float.IsNaN(c) | float.IsPositiveInfinity(c) | float.IsInfinity(c) | float.IsNegativeInfinity(c))
{
throw new System.ArgumentException("Exception occured");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
|
|
|
05/06/2013, 16:24
|
#10
|
elite*gold: 0
Join Date: Nov 2012
Posts: 390
Received Thanks: 145
|
Vllt per Timer, der regelmäßig abfragt, ob der Text des Labels "0" ist, oder was dachtest du dir?
|
|
|
05/06/2013, 16:31
|
#11
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
? Timer klingt sehr schräg für mich
einfach da wo jetzt steht
{
rechnen
}
ein
if label.text != "0"
{
rechne
}
else
{
schmeiß fehler
}
Obwohl sich bei mir alles anfängt zu drehn wenn man zahlen in nem label speichert :P
|
|
|
05/06/2013, 16:34
|
#12
|
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
|
Code:
try
{
//stuff
}
catch (DivideByZeroException)
{
//error handling
}
|
|
|
05/06/2013, 16:46
|
#13
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
Quote:
Originally Posted by abc...xyz
Vllt per Timer, der regelmäßig abfragt, ob der Text des Labels "0" ist, oder was dachtest du dir?
|
Bitte nicht
|
|
|
05/06/2013, 16:59
|
#14
|
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
|
Hey kissein
Probier mal folgendes
Code:
try
{
float a = 1.0f;
float b = 0.0f;
float c = a / b;
}
catch (DivideByZeroException)
{
MessageBox.Show("blub");
}
Dann wunder dich ne Runde
Just Kidding, wie gesagt, das Problem hier liegt minimal versteckt und deine Lösung würde nicht funktionieren.
.net schaut auf den String im Label wie ich das versteh, logischerweise würd das nur Käse ergeben, also ist es clever genug sich zu denken, das convert ich besser mal, da es eine Division ist, ist Float ne Gute wahl.
Ab diesem Punkt rechnet es mit Floats und Floats werfen nach der Standatisierung die C# nutzt keine direkte Exception sondern setzen bei einer Exception das return Value entsprechend als positive/negativ infinite oder NaN. Also dürfte von meine Verständnis her auch keine Exception geworfen werde. Wenn ich mich aber irre klärt mich gern auf
|
|
|
05/06/2013, 17:27
|
#15
|
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
|
@ dready
ich muss gestehen das ich mir solche Threads nie im Detail ansehen sondern nur überfliege, deshalb auch minimalste Kommentare in meinem Beitrag. Sollte im OP das alles sein dann hast natürlich recht, ging eigentlich davon aus, dass Konvertierungen vor den eigentlichen Berechnungen gemacht worden wären.
|
|
|
 |
|
Similar Threads
|
Rippln - Geld verdienen durch alltägliches teilen
04/20/2013 - Off Topic - 5 Replies
Hey Leute, ich habe gerade Rippln entdeckt, ein neuer Dienst bei dem man Geld verdienen kann, indem man Apps, etc mit seinen Freunden teilt. Am einfachsten zu verstehen ist das ganze wohl anhand dieses Videos : Rippln NDA - YouTube
Anmelden kann man sich unter : rippIn - dazu benötigt man allerdings einen Invitecode, den ich euch schicken kann, ich benötige dazu lediglich euren Vor- und Nachnamen und eure E-Mail Adresse.
|
[S] Werbung durch Facebook teilen [B] e*Gold
01/15/2012 - elite*gold Trading - 0 Replies
Wie gesagt suche Werbung durch teilen ;D
Die seite sollte schon mehr als 30k likes haben .
Einfach pn schicken oder hier in thread schreiben (;
|
[S] Werbung durch Facebook teilen [B] e*Gold
01/08/2012 - elite*gold Trading - 0 Replies
Wie gesagt :D suche Facebook teilen pn me :D mit der Seite die euch gehört ^^ dann Sende ich euch das e*gold .
Fertig :D
Max 10e*gold .
|
[S] Werbung durch Facebook teilen [B] e*Gold
01/07/2012 - elite*gold Trading - 3 Replies
Suche leute die meine Seite teilen auf fb ^^ die seiten sollten schon viele likes haben :D einfach anschreiben ^^
|
All times are GMT +1. The time now is 20:20.
|
|