Seite 1 von 1

Fehlernummer ist immer Null

Verfasst: Sa, 17.01.2009 17:25
von Jeannot
OOo = Version 2.4.1 / OS = Linux Kubuntu Hardy Heron

Hallo,

Habe folgenden Code in meinen Prozeduren eingebaut um Laufzeitfehler elegant aufzufangen:

Code: Alles auswählen

Sub ProcedureName
	
	On Error Goto ErrorHandler
	
ErrorHandler:
	Select Case Err
		Case 0
		Case Else
			Call GlobalErrorHandler(Error,Err,"ModuleName","ProcedureName",Erl)
	End Select

End Sub
Die globale Prozedur «GlobalErrorhandler» gibt im Falle eines Fehlers eine Meldung mit den nötigen Parametern aus. Die Select-Case Konstruktion hilft mir bei Bedarf anders zu reagieren, indem ich die betreffende Fehlernummer einbaue.

Das Problem: die Fehlernummer ist immer 0 gleichgültig welcher Fehler auftaucht! Ich kann also genauso gut ein «On Error Resume Next» an den Anfang jeder Prozedur setzen. Der Effekt ist der Gleiche. «Err.Number» statt einfach «Err» bringt auch nichts, da die Eigenschaft «Number» die Standardeigenschaft des Err-Objekts ist.
Ist das ein Bug dieser Version oder habe ich etwas Wesentliches übersehen? Würde mich freuen wenn jemand von euch mir unter die Arme greifen könnte.

Danke im Voraus und beste Grüße!

Jeannot

Re: Fehlernummer ist immer Null

Verfasst: Sa, 17.01.2009 18:36
von turtle47
Hi Jeannot,

bekommst Du hiermit auch die Fehlernummer 0?

Code: Alles auswählen

Sub ProcedureName_1   
	On Error Goto ErrorHandler
	Dim Ergebnis, i, j as double
	I = 0
	j = 4
	Ergebnis = J / I
	ErrorHandler:
	MsgBox "Fehlernummer: " + Err
	MsgBox "Fehlermeldung: " + Error$
	MsgBox "Zeile: " + Erl
	   Select Case Err
	      Case 0
	      msgbox "Fehlernummer = 0 "
	      Case Else
	      msgbox "Fehlernummer > 0 "   
	   End Select
End Sub
Jürgen

Re: Fehlernummer ist immer Null

Verfasst: So, 18.01.2009 08:52
von Jeannot
Hallo Jürgen,

Genauso ist es:

Code: Alles auswählen

Fehlernummer=0
Fehlermeldung=Division by zero.
Zeile=62
Komisch was?

Gruß!

Jeannot

Re: Fehlernummer ist immer Null

Verfasst: So, 18.01.2009 09:33
von turtle47
Guten Morgen Jeannot,
Jeannot hat geschrieben:Komisch was?
In der Tat.

Denn der Fehler wird ja richtig erkannt:

Code: Alles auswählen

Fehlermeldung=Division by zero.
und müsste deshalb auch die richtige Fehlernummer ausgeben.

Bei meinen Tests auf Win-Basis:

OOo 3.0
OOo 2.4.1
OOo 2.4.1 portable

wird immer die Fehlernummer 11 ausgegeben.

Man kann den Fehler provozieren, wenn man Err z.B. vorher deklariert:

Code: Alles auswählen

Dim Err as integer
Andrer Ansatz:
Verwendest Du die in der Distri mitgelieferte OOo Installation oder hast Du OOo separat installiert?
In der Vergangenheit hat sich nämlich gezeigt, dass in der Distri enthaltene OOo-Installationen in
manchen Bereichen leider nicht ganz sauber arbeiten.

Trotzdem weiterhin viel Erfolg.

Jürgen

Re: Fehlernummer ist immer Null

Verfasst: So, 18.01.2009 21:16
von Jeannot
Hallo Jürgen,

«Err» deklarieren ändert nix. Dir Fehlernummer bleibt 0. Die OOo Version stammt in der Tat aus der Kubuntu-Distri. Ich werde diese ersetzen. Dann geht's vielleicht. Werde jedenfalls das Resultat hier posten.

Besten Dank und viele Grüße!

Jeannot

Re: Fehlernummer ist immer Null

Verfasst: So, 18.01.2009 21:24
von turtle47
Hi Jeannot,
Jeannot hat geschrieben:«Err» deklarieren ändert nix.
da habe ich mich wohl leider nicht klar genug augedrückt.

Wenn man <<Err>> deklariert dann wird die 0 ausgegeben!!

Jürgen