fehler ausgeben?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Killer999

Betreff: fehler ausgeben?

BeitragDi, März 22, 2005 2:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi ich wollte fragen ob es möglich ist ein fehler selbst zu beschreiben

also er soll eine datei öffnen und wenn er die nicht öffnen kann das er meine fehlerbeschreiben angibt.

Ebola33

BeitragDi, März 22, 2005 4:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
wenn du eine Datei öffnest kannst du den Fehler sofort abfangen mit :
BlitzBasic: [AUSKLAPPEN]
If Not OpenFile (\"datei.ebo\")

verstanden ?

Mfg Ebola
ansteckend... Wink
verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/
 

Weazle25

BeitragDi, März 22, 2005 4:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau in der Onlinehilfe mal nach RuntimeError().
Ausserdem geben alle Funktionen mit denen man Dateien öffnen kann eine 0 zurück wenn die Datei nicht geöffnet werden konnte.
BlitzBasic: [AUSKLAPPEN]

Image = LoadImage( \"C:\xyz.bmp\" )
If Image = 0 Then RuntimeError \"Datei konnte nicht geladen werden!\"



Gruss
Weazle
 

Weazle25

BeitragDi, März 22, 2005 4:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ebola33 hat Folgendes geschrieben:
BlitzBasic: [AUSKLAPPEN]
If Not OpenFile (\"datei.ebo\")

So würde ich das nicht prüfen weil das zu Fehlern führen kann.
Denn das eine Datei vorhanden ist bedeutet nicht das BB die auch laden kann ( vor allem bei Bildern, Modellen, Sounds, etc.)
Die Methode die ich gepostet habe ist da eindeutig sicherer.


Gruss
Weazle

Ebola33

BeitragDi, März 22, 2005 4:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr unwarscheinlich aber hast recht Razz

edit:
Nur dann öffnet sich die FM ja auch in nem eigenen Fenster. Muss man ja nicht immer wollen.
ansteckend... Wink
verstaubtes Projekt : http://www.mitglied.lycos.de/ebola33/

Artemis

BeitragDi, März 22, 2005 11:55
Antworten mit Zitat
Benutzer-Profile anzeigen
aber runtimeerror ist scheiße!
das beendet das ganze programm!
man sollte lieber eine graische meldung ausgeben welche datei nicht geöffnet werden konnte.

BladeRunner

Moderator

BeitragDi, März 22, 2005 12:03
Antworten mit Zitat
Benutzer-Profile anzeigen
und wie stellst du dir vor das programm ohne eine essentielle Datei weiterlaufen zu lassen?
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Artemis

BeitragDi, März 22, 2005 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
man kann einbauen, dass wenn zb keine sounds gefunden wurden, dass einfach keine gespielt werden!
BlitzBasic: [AUSKLAPPEN]

sound1 = LoadSound(\"hallo.wav\")
If sound1 = 0 Then sound1play = 0
Else sound1play = 1
;...
;...


;event bei dem sound gespielt wird
If sound1play <> 0 Then PlaySound(sounmd1)


Natürlich geht das nicht bei spielnotwendigen bildern!

BladeRunner

Moderator

BeitragDi, März 22, 2005 12:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Halte ich nur sehr bedingt für sinnvoll. Der User erhält keinen Sound und wird nie erfahren dass er sound hätte haben können. Macht dann einen ganz anderen Eindruck.
Daher preferiere ich die "Wir haben ein Problem, und zwar dieses:"- Methode bei weitem.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Jan_

Ehemaliger Admin

BeitragDi, März 22, 2005 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich muss sagen, die methode von Jonas ist schon nicht schlecht,

Fehler, Sound datei konnte nciht geladen werden --> weiter.
und es wird gezockt, ohne die Sounddatei, was es Später zum Hobbymässigen erweitern einfacher macht.
between angels and insects
 

Killer999

BeitragDi, März 22, 2005 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
danke ok wollte das mit der datei eigentlich nur als beispiel haben. Aber wenn jetzt irgend wo im quelltext ein fehler ist diesen dann auszuführen.

Beispiel bei einer if schleife oder so.

Einer hat mal in sein text

BlitzBasic: [AUSKLAPPEN]
If Var$ = 2 Then error \"Error\"


so ein aufbau nur halt nach den then ist natürlich falsch ^^

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, März 22, 2005 12:45
Antworten mit Zitat
Benutzer-Profile anzeigen
das muß aber nicht falsch sein .....
könnte evt so gewesen sein
BlitzBasic: [AUSKLAPPEN]
Var$=2
If Var$ = 2 Then error \"Error\"
WaitKey
Function error(A$)
Print A$
End Function
[BB2D | BB3D | BB+]
 

Killer999

BeitragDi, März 22, 2005 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
also es ist ein fenster gekommen wie bei


" Memory access violation"
 

Ensign Joe

BeitragDi, März 22, 2005 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
mach mal den debug an, dann erhälöste genauere beschreibungen (beim compilieren möglichst abschalten, weil das proggi sonst lahmt)

man nehme:
ein vb6
progge eine message box, compiliert und ruft das compiulat von bb aus auf
Ich habe jetzt eine Pommesbude aufgemacht am Münchner Hauptbahnhof.
Und da ich Herbert Görgens heiße, heißt diese Pommesbude
Herbert's Pommesbude Smile
 

Weazle25

BeitragDi, März 22, 2005 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ensign Joe hat Folgendes geschrieben:
man nehme:
ein vb6
progge eine message box, compiliert und ruft das compiulat von bb aus auf


Viel zu umständlich!
Mach es lieber so:
BlitzBasic: [AUSKLAPPEN]

Global ErrorlogFile$=\"\"
Global ErrorCount=0
Global ErrorLogCreated = 0

Function InitErrorLog( ProgrammName$ )
ErrorFileCount = 0
ErrorCount = 0
FileName$ = \".\\" + ProgrammName$ + \"_DebugLog.txt\"
If FileType( FileName$ ) = 1 Then
Repeat
ErrorFileCount = ErrorFileCount + 1
ext$ = Right$( FileName$, 4 )
ErrorlogFile$ = Left$( FileName$, Len( FileName$ ) - 4 ) + \"_\" + ErrorFileCount + ext$
Until FileType( ErrorlogFile$ ) = 0
Else
ErrorlogFile$ = FileName$
EndIf
End Function

Function AddError( MSG$ )
If ErrorLogCreated = 0 Then
file = WriteFile( ErrorlogFile$ )
If file = 0 Then RuntimeError \"Datei \" + Chr(34) + tmp$ + Chr(34) + \" konnte nicht erstellt werden!\"

TmpName$ = Replace( Replace( Replace( ErrorlogFile$, \".\\", \"\" ), \".txt\", \"\" ), \"_\", \" \" )
WriteLine( file, TmpName$ )
Laenge = Len(TmpName$)
TmpName$ = \"\"

For i = 1 To Laenge
TmpName$ = TmpName$ + \"=\"
Next

WriteLine( file, TmpName$ )
WriteLine( file, \"\" )
CloseFile( file )
ErrorLogCreated = 1

size = FileSize( ErrorlogFile$ )
file = OpenFile( ErrorlogFile$ )
SeekFile( file, size )
WriteLine( file, MSG$ )
CloseFile( file )
ErrorCount = ErrorCount + 1
Else
size = FileSize( ErrorlogFile$ )
file = OpenFile( ErrorlogFile$ )
SeekFile( file, size )
WriteLine( file, MSG$ )
CloseFile( file )
ErrorCount = ErrorCount + 1
EndIf
End Function


Damit wird ne Textdatei erstellt in die alle Fehler hinein geschrieben werden.
Auf diese Weise muss der User die Fehlermeldungen nicht erst umständlich beschreiben sondern er schickt einfach nur die Datei an den Programmierer.
Die Datei wird allerdings nur dann erstellt wenn auch ein Fehler aufgetreten ist und AddError() aufgerufen wurde.


Gruss
Weazle
 

Weazle25

BeitragDi, März 22, 2005 15:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ebola33 hat Folgendes geschrieben:
Sehr unwarscheinlich aber hast recht Razz


Wieso unwahrscheinlich?
Finde ich nicht denn wenn eine Datei die Endung bmp hat muss es ja noch keine Bitmap sein und selbst wenn könnte die zuladene Datei ja auch beschädigt sein.
Und dann liefert BB eben eine 0 zurück welche man dann für Fehlerabfragen benutzen kann.

Ebola33 hat Folgendes geschrieben:
edit:
Nur dann öffnet sich die FM ja auch in nem eigenen Fenster. Muss man ja nicht immer wollen.


Man muss ja auch nicht unbedingt RunTimeError() benutzen.
RunTimeError() benutze ich z.B. nur für Fehler durch die das Programm ohnehin nicht mehr aufgeführt werden kann.
Für alle anderen Fehler benutze ich die ErrorLog-Funktionen die ich weiter oben beschrieben habe.


Gruss
Weazle
 

Killer999

BeitragDi, März 22, 2005 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die ganzen hilfen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group