Seite 1 von 1

Schnelle Frage von welchem Exception Type ist ein int()

Verfasst: Donnerstag 30. April 2020, 15:32
von Mungo1981
Liebe Community,
Ich bin gerade dabei mein kleines Programm weiter zu schreiben.
Dabei stellt sich mir gerade folgendes Problem.
Ich bekomme den Inhalt einer tk.Entr().get()
als String.
Im Ideal-Fall muss ich diese in einen Int verwandeln mit int()
es gibt aber auch den Fall das dies nicht gelingt.
Somit habe ich eine Try Exception drumherum gebastelt.
Um noch ein paar Gummi-Punkte zu sammeln,
möchte ich diese Exception auf den Typ beschränken der vorliegt.
Wenn und nur wenn die Typ-Umwandlung mit int(value) misslingt.
Dazu brauch ich aber den Typ dieser Exception.

Kann mir da mal jemand aushelfen

Mungo1981

Re: Schnelle Frage von welchem Exception Type ist ein int()

Verfasst: Donnerstag 30. April 2020, 15:34
von __deets__

Code: Alles auswählen

>>> int("Probier es doch einfach selbst aus")

Re: Schnelle Frage von welchem Exception Type ist ein int()

Verfasst: Donnerstag 30. April 2020, 15:37
von Mungo1981
Ok than it is
ValueError

or???

Re: Schnelle Frage von welchem Exception Type ist ein int()

Verfasst: Donnerstag 30. April 2020, 15:38
von __deets__
Ja.

Re: Schnelle Frage von welchem Exception Type ist ein int()

Verfasst: Donnerstag 30. April 2020, 15:41
von Mungo1981
Ok, Danke dass hab ich begriffen

Re: Schnelle Frage von welchem Exception Type ist ein int()

Verfasst: Donnerstag 30. April 2020, 15:56
von Miscelo
Vielleicht hilft dir auch type(x) weiter.

Code: Alles auswählen

if type(entry.get()) == str:
	print("do something")
elif type(entry.get() == int:
	print("do other thing")
else:
	print("DAta type error")

Re: Schnelle Frage von welchem Exception Type ist ein int()

Verfasst: Donnerstag 30. April 2020, 15:59
von __deets__
@Miscelo: da das Entry *immer* einen String zurueck gibt, hilft das nicht.

Re: Schnelle Frage von welchem Exception Type ist ein int()

Verfasst: Donnerstag 30. April 2020, 16:30
von __blackjack__
@Miscelo: Ergänzend ist ein Typtest in der Regel ein „code smell“ und man macht den auch nicht mit `type()` und ``==`` sondern mit `isinstance()`.

Re: Schnelle Frage von welchem Exception Type ist ein int()

Verfasst: Sonntag 3. Mai 2020, 17:04
von Miscelo
Korrekt. Hätte ich vielleicht mal testen sollen. isinstance() ist eine gute Lösung.