Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 20:19

  • Please register to post and access all features, it's quick, easy and FREE!

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.

Reply
 
Old   #1
 
Benjihz's Avatar
 
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
Benjihz is offline  
Old 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
dready is offline  
Old 05/05/2013, 18:03   #3
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
Quote:
Originally Posted by dready View Post
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..
Benjihz is offline  
Old 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
}
dready is offline  
Old 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?
#SoNiice is offline  
Old 05/05/2013, 21:11   #6
 
Benjihz's Avatar
 
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
Quote:
Originally Posted by SoNiice View Post
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.. ^^
Benjihz is offline  
Old 05/05/2013, 21:42   #7


 
Else's Avatar
 
elite*gold: 4
The Black Market: 166/0/0
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.
Else is offline  
Old 05/05/2013, 21:55   #8
 
Benjihz's Avatar
 
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.
Benjihz is offline  
Old 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);
            }
dready is offline  
Old 05/06/2013, 16:24   #10
 
abc...xyz's Avatar
 
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?
abc...xyz is offline  
Old 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
dready is offline  
Old 05/06/2013, 16:34   #12
 
kissein's Avatar
 
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
Code:
            try 
            {
                //stuff
            }
            catch (DivideByZeroException) 
            {
                //error handling
            }
kissein is offline  
Thanks
1 User
Old 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 View Post
Vllt per Timer, der regelmäßig abfragt, ob der Text des Labels "0" ist, oder was dachtest du dir?
Bitte nicht
qkuh is offline  
Thanks
1 User
Old 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
dready is offline  
Thanks
1 User
Old 05/06/2013, 17:27   #15
 
kissein's Avatar
 
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.
kissein is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.