Zum Inhalt springen

Empfohlene Beiträge

Geschrieben
wo ist denn jetzt bitte mein gedankenfehler....
Was soll diese Funktion denn tun?

Das sieht jedenfalls furchtbar kompliziert aus. Die Lösung ist viel einfacher.

Als erstes solltest du std::string für die Eingabe verwenden, keine char-Arrays.

Geschrieben

Sollte nicht auch eine Exception abfangbar sein bei der Konvertierung des Strings in einen int?

Ich bin mir bewusst das die Threadstellerin damit nicht viel anfangen kann. Aber es interessiert mich vom technischen Aspekt.

Gleichzeitig frag ich mich ob ihr so eine Lösung als... unschön ansehen würdet?

Geschrieben
Sollte nicht auch eine Exception abfangbar sein bei der Konvertierung des Strings in einen int?

Ich bin mir bewusst das die Threadstellerin damit nicht viel anfangen kann. Aber es interessiert mich vom technischen Aspekt.

Gleichzeitig frag ich mich ob ihr so eine Lösung als... unschön ansehen würdet?

Bei einem explizieten Cast wäre das unschön.

Wenn's eine Funktion macht (wie in Java z.B.), dann wär's ok.

Geschrieben
Sollte nicht auch eine Exception abfangbar sein bei der Konvertierung des Strings in einen int?
Mir ist keine Standardfunktion bekannt, die in so einem Fall eine Ausnahme werfen würde.

Gleichzeitig frag ich mich ob ihr so eine Lösung als... unschön ansehen würdet?
Kommt drauf an, wo man die Ausnahme fängt. Ausnahme bieten sich immer dann an, wenn die Fehlerbehandlung an übergeordneter Stelle stattfindet. Einen try-block um solche eine Umwandlung finde ich persönlich unangemessen. Das ist IMHO keine Ausnahme, sondern ein normaler Fall im Programmfluss.
Geschrieben

Ich dachte mir das in einer Form wie hier.

Außerdem denke ich ist eine falsch eingegebene Zahl/String doch ein Fehler und wir können von dem .. Normalfall ausgehen das der Benutzer richtige Zahlen eingibt. Aber falls er es nicht schafft kann eingegriffen werden.

Geschrieben
Ich dachte mir das in einer Form wie hier.
Du meinst boost::lexical_cast? Das tut in etwa das, was ich hier beschrieben habe ;)

Wenn man so eine Funktion benutzt, muss man die Exception natürlich fangen.

Außerdem denke ich ist eine falsch eingegebene Zahl/String doch ein Fehler und wir können von dem .. Normalfall ausgehen das der Benutzer richtige Zahlen eingibt.
Die Frage ist doch, ob es eine Ausnahmesituation darstellt, d.h. dass das Auftreten nicht vorhersehbar ist. Bei einer Benutzereingabe ist das sicherlich der Fall, aber IMHO nicht generell bei einer Umwandlung von Strings in Zahlen. Aber das ist vermutlich Geschmackssache.
Geschrieben
Bei einer Benutzereingabe ist das sicherlich der Fall, aber IMHO nicht generell bei einer Umwandlung von Strings in Zahlen. Aber das ist vermutlich Geschmackssache.

Ist das im Endeffekt nicht das selbe? Wenn ein String nicht in eine Zahl konvertiert werden kann, ist das doch eine Ausnahme für das entsprechende Format des Strings (nur Zahlen [und ggf. ein Dezimalpunk/-komma]).

Geschrieben
Ist das im Endeffekt nicht das selbe? Wenn ein String nicht in eine Zahl konvertiert werden kann, ist das doch eine Ausnahme für das entsprechende Format des Strings (nur Zahlen [und ggf. ein Dezimalpunk/-komma]).
Aber nur, wenn du tatsächlich ein bestimmtes Format erwartest. Für mich ist eine Ausnahme immer ein unerwarteter Fehler. Wenn ich einen String parse, der syntaktisch eine Zahl sein kann, aber nicht muss, ist eine fehlgeschlagene Umwandlung für mich nichts Unerwartetes.
Geschrieben
Aber nur, wenn du tatsächlich ein bestimmtes Format erwartest. Für mich ist eine Ausnahme immer ein unerwarteter Fehler. Wenn ich einen String parse, der syntaktisch eine Zahl sein kann, aber nicht muss, ist eine fehlgeschlagene Umwandlung für mich nichts Unerwartetes.

Ja, aber in dem Fall würde doch ein bestimmtes Format erwartet werden. :confused:

(Eben nur Zahlen)

Wie auch immer, ich glaub das geht zu weit ins OT.

Für die Threaderstellerin ist es sicher einfacher, wenn sie isDigit() aufruft. :rolleyes:

Geschrieben

nicht wirklich.. hatten gestern schule und unser lehrer meinte dann tatsächlich, dass wir das so komplex noch gar nicht machen sollen.. trotzdem werde ich sobald ich mal wieder luft habe daran weiter tüfteln...

müssen jetzt nen fahrscheinautomaten programmieren und sollen wenn der fertig ist mit der fehlerabfrage so beginnen..

werde mich im zweifel dann man wieder bei euch melden...

kenne von java-code die try-catch blöcke, ich weiß, dass es die in c auch gibt.. werden sie genauso genutzt?

allerdings möchte ich es auf dem anderen weg auch noch schaffen..

lieben dank, das ihr euch so kümmert...

Geschrieben
kenne von java-code die try-catch blöcke, ich weiß, dass es die in c auch gibt..
Da irrst du dich. In C gibt es keine Exceptions, zumindest nicht im Standard. Manche Compiler und Bibliotheken enthalten allerdings ähnliche Mechanismen. "Echte" Exceptions gibt es allerding in C++.

werden sie genauso genutzt?
Die Benutzung in C++ ist ähnlich wie in Java, allerdings gibt es keine "Checked Exceptions".
Geschrieben
Da irrst du dich. In C gibt es keine Exceptions, zumindest nicht im Standard.

Ich erinner mich grad an die Windowsfunktionen die ein DWORD zurückgegeben haben.

-> Mitunter großer Switch-Case-Block um die genaue Fehlerbeschreibung anzuzeigen.:rolleyes:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...