on Error do ...

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

hoohead

Betreff: on Error do ...

BeitragMi, Jun 25, 2008 13:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde gerne wissen, ob es möglich ist, bei Fehlermeldungen "Memory Acces Violation" etc. statt abzubrechen etwas anderes zu machen.

Also wenn mein Spiel eine Fehlermeldung auswerfen will, statt Fehlermeldung - goto .errorlabel

Geht so etwas, oder ist ein Abbruch unausweichlich?

Blackside

BeitragMi, Jun 25, 2008 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Leider denke ich das dies nicht möglich ist,
denn wenn dein Programm einen Fehler hat,
kann er ja nicht einfach Fortfahren, denn dieser Fehler
kann ja auch bei der Errormeldung sein...
MFG Blackside
Hier sollte eigentlich eine Signatur stehen!
 

buja

BeitragMi, Jun 25, 2008 13:47
Antworten mit Zitat
Benutzer-Profile anzeigen
das geht.

zum beispiel wenn du ein bild laden willst:

Code: [AUSKLAPPEN]

Loadimage ("image.jpg")
If Loadimage("image.jpg") = 0 then error()


Function error()
print "Error"
waitkey
end function



Einfach in der Blitzbasic-Hilfe den Rückgabewert der Befehle lesen Wink

Edit: Hab den Code in die CodeBox getan und das Waitkey dazugetan
...
 

ChristianK

BeitragMi, Jun 25, 2008 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Meistens reicht das, aber du gehst davon aus, dass die Blitz-Funktionen fehlerfrei sind und immer einen Wert zurück geben. Wenn in der Funktion selbst ein Fehler auftritt, bekommt man natürlich immer noch die MAV- Fehlermeldung.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

kriD

BeitragMi, Jun 25, 2008 13:54
Antworten mit Zitat
Benutzer-Profile anzeigen
was cool wär wär ja so ein "try"-befehl, bei dem man denn zB schreibt:
Code: [AUSKLAPPEN]

if try (1337/0) then
debuglog "toll, befehl geht!"
else
debuglog "schade, man kann immernochnicht durch null teilen :("
endif

aber den befehl gibts LEIDER nicht. Eigentlich schade, weil ich mir vorstellen kann, das Silby sowas relativ leicht reinbaun könnte.

lg kriD
Wenn ich du wäre, wäre ich lieber ich!
 

hoohead

BeitragMi, Jun 25, 2008 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Funktion if Loadimage xxx = 0
Oder if stream = 0 then ....

sind mir bis jetzt schon bekannt und so langsam gewöhne ich mich auch daran, diese Abfragen bei gewissen Funktionen einzubauen - wollte wissen, ob es irgend einen handle gibt, dass er sowas wie on error goto .errorlable macht.

Edit: kriDs Post wärend des erstellens geposted - Frage beantwortet Danke Smile

ToeB

BeitragMi, Jun 25, 2008 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Wennn man aber schriebt :
Code: [AUSKLAPPEN]
LoadImage("blablub.png")
If LoadImage("blablub.png") = 0 then Error()


Ist es erstens nicht gerade schön un zweitens wird das Bild zweimal geladen, heißt bei etwa 20 Bildern werden 40 Bilder geladen, wo bei immer Speicher im RAM "gebucht" wird, zieht ziehmlich an der geschwiendigkeit.. Besser wäre :
Code: [AUSKLAPPEN]
Global IMG = LoadImage("blablub.png")
If IMG = 0 then Error()


Das aber nur so als verbesserung, mache das auch mit anderen sachen, die du lädst etc.

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

DAK

BeitragMi, Jun 25, 2008 14:33
Antworten mit Zitat
Benutzer-Profile anzeigen
bei 2d ist das noch nicht so schlimm... bei 3d iss dann nämlich auch so, dass dann das geladene modell auf 0,0,0 herum steht... trotzdem sollte man vermeiden, sachen doppelt zu laden...
Gewinner der 6. und der 68. BlitzCodeCompo

Xeres

Moderator

BeitragMi, Jun 25, 2008 14:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Vollständigkeit halber sei erwähnt, dass man auch direkt runtimeerror verwenden kann.
Code: [AUSKLAPPEN]
Global IMG = LoadImage("blablub.png")
If IMG = 0 then Runtimeerror("blablub.png konnte nicht gefunden werden!")
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

BladeRunner

Moderator

BeitragMi, Jun 25, 2008 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Exception Handling ist das was Du suchst, und nein, BB hat das (leider) nicht. BMax stellt mit try catch einen Ansatz zur Verfügung.
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

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group