Fehlernummer ist immer Null

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Jeannot
*
Beiträge: 10
Registriert: Mi, 26.12.2007 20:21

Fehlernummer ist immer Null

Beitrag 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
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Fehlernummer ist immer Null

Beitrag 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
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Jeannot
*
Beiträge: 10
Registriert: Mi, 26.12.2007 20:21

Re: Fehlernummer ist immer Null

Beitrag von Jeannot »

Hallo Jürgen,

Genauso ist es:

Code: Alles auswählen

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

Gruß!

Jeannot
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Fehlernummer ist immer Null

Beitrag 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
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Jeannot
*
Beiträge: 10
Registriert: Mi, 26.12.2007 20:21

Re: Fehlernummer ist immer Null

Beitrag 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
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Fehlernummer ist immer Null

Beitrag 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
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten