German Nach Fehler einfach fortfahren

so27

Active Member
Licensed User
Longtime User
Hallo zusammen,

ich habe ein mittelschweres Problem beim Einlesen von Apps. Meine App liest alle Apps bis zur 78. App ein und steigt dann mit einem Fehler aus. (Warum auch immer)

Am PC gibt es da einen tollen Befehl der da lautet: on error resume next (also, wenn ein Fehler auftritt gehe einfach weiter).

Gibt es bei B4A auch diese Möglichkeit, dass der Fehler einfach umgangen bzw. ignoriert wird?

Gruß, so27
 

MaFu

Well-Known Member
Licensed User
Longtime User
Du kannst versuchen den Fehler mit einem Try ... Catch Block abzufangen.
B4X:
Try
    'dein Code hier
Catch
    'ToastMessageShow(LastException.Message, True)
    Log(LastException)
End Try
 

DonManfred

Expert
Licensed User
Longtime User
Gibt es bei B4A auch diese Möglichkeit, dass der Fehler einfach umgangen bzw. ignoriert wird?
Viel eher sollte man versuchen rauszufinden was da genau schief läuft... z.b. versuchst du da vielleicht ein icon zu laden was gar nicht existiert (hatte ich schon den Fall).
 

hogiebaer

Active Member
Licensed User
Longtime User
Don hat recht.

Esgibt für Dich 2 Möglichkeiten. Da Du ja schon weisst, dass das Ding abschmiert, starte im Debug Mode und du wirst exakt an der Absturzstelle sehen, was schief läuft.
Alternativ kannst (solltest!) Du auch im ReleaseMode mit MaFu´s Methode arbeiten. Aus deiner Fragestellung lese ich ein wenig heraus, dass Du aber nicht genau weisst,
wo es schief läuft. Wenn du wenigstens weisst, in welcher SUB, dann bietet sich folgende Lösung an.

B4X:
Sub DeineRoutine
TRY

   .. Der Inhalt deiner jetzigen Sub (ohne SubEnd)



CATCH

    MsgBox(lastexception.message,"")

END TRY

End Sub
Dann siehst Du auf jeden Fall schon einmal beim Crash die verwertbare Fehlermeldung.


Diese Resume Next Geschichte kenne ich auch noch von früher, finde sie aber sehr gefährlich und bin froh, dass es sie hier nicht gibt, da man sehr
schnell schlampig programmiert und auftretende Fehlermeldungen nicht mehr wahrnimmt. Das Programm lief dann früher weiter mit eventuell falschen
Variablenbelegungen und die Kette der Fehler nimmt unproportional zu. So bist du einfach gezwungen, Fehler zu BEHEBEN, anstatt sie unter den
Teppich zu kehren.

Und eigentlich ist ja diese TRY/CATCH Methode eine Art Resume Next Methode.
Wenn man genau weiss, dass an bestimmten Stellen z.b. I/O Probleme auftreten, die
man nicht beachten muss, fängt man sie vor der Ausführung mit TRY ab und lässt den Catch Block einfach leer.


Gruss
Holger
 

so27

Active Member
Licensed User
Longtime User
Guten Morgen zusammen,

ja super über lastexception.message kann ich den Fehler genau analysieren. Danke.

@DonManfred es ist in der Tat ein fehlendes Icon, welches den Fehler verursacht.

LG, so27
 

so27

Active Member
Licensed User
Longtime User
Vielleicht kann mir hier mit der Fehlermeldung jemand helfen. Beim Einlesen der Apps bricht die App nun mit folgender Meldung ab. Wie kann ich den Fehler korrigieren?
 

Attachments

  • screener_20150616(06-48-35).png
    screener_20150616(06-48-35).png
    166.3 KB · Views: 285
Top