try except finally

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Samstag 11. Oktober 2003, 22:54

Hallo zusammen,

ich habe ein Problem mit try except finally
Ich bekomme in folgender Funktion

Code: Alles auswählen

def ShowAllCDs():
	TextMatches.delete(1.0,"end")
	oldcdnr = ""
	data = Inidata(0)
	mf.config(cursor="watch")
	try:
		fz = open(data.dbname)
		dbfile = fz.readlines()
		LabelState["text"] = "searching..."
		for i in dbfile:
			#cut characters before the first space char
			cdnr = i.split(' ')[0]
			if cdnr != oldcdnr:
				TextMatches.insert("end",cdnr)
				oldcdnr = cdnr
	except IOError:#print gPath
		tkMessageBox.showerror("File-Error", "Could not open file: " + data.dbname)
	except:
		tkMessageBox.showerror("Error", "Unexpected error when reading database" + data.dbname)
	finally:
		LabelState["text"] = "Ready"
		mf.config(cursor="arrow")
folgenden Fehler:
File "<string>", line 98
finally:
^
SyntaxError: invalid syntax

Hat jemand eine Idee, an was das liegen kann.
Danke schonmal für eure Hilfe.

Alpha
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Samstag 11. Oktober 2003, 23:53

Hi alpha,

pydoc sagt mir unter Anderem folgendes
There are two forms of try statement: try...except and try...finally.
These forms cannot be mixed (but they can be nested in each other).
Das sagt soviel wie try...except und try...finally können nicht gemischt verwendet werden. Also entweder except oder finally, bei except kann auch eine else-klausel folgen.


Gruß

Dookie
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Sonntag 12. Oktober 2003, 09:27

Aber man kann kauch schachteln

Code: Alles auswählen

#!/usr/bin/python

try:
  try:
    print "Morgens um sieben ist die Welt noch in Ordnung"
    print 5 / 0
  except:
    print "ein Fehler ist aufgetreten"
finally:
  print "ich werde auf jeden Fall ausgeführt"
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Sonntag 12. Oktober 2003, 11:45

Danke, hat geklappt.
Antworten