bluemodel / BlueM.Opt

BlueM.Opt is an optimization framework that can be coupled with an arbitrary simulation software.
https://wiki.bluemodel.org/index.php/BlueM.Opt
GNU General Public License v3.0
2 stars 1 forks source link

111: Fehlerbehandlung #44

Closed bluemodel-bot closed 2 years ago

bluemodel-bot commented 2 years ago
Original bug ID 111
Reported by froehlich on 2007-04-25
Affects version 0.9
Component Allgemein
Severity critical
Priority P1
Milestone 1.0
Assigned to froehlich
Status CLOSED FIXED

Comments:

froehlich on 2007-08-23:

---- Reported by froehlich 2007-04-25 14:50:21 ----

Wir brauchen eine einheitliche Fehlerbehandlung!

Ich schlage vor: Try - Catch - Finally (Exceptions). Exceptions können auch manuell mit dem Befehl Throw generiert werden. Mit der Throw-Anweisung können Sie Fehler im Code abfangen, da Visual Basic die Aufrufliste nach oben verfolgt, bis der geeignete Ausnahmebehandlungscode [Catch] gefunden wird.

---- Additional Comments From froehlich 2007-04-25 14:54:16 ----

In Rev 216 für ReadEVOIni() beispielhaft ausgeführt

---- Additional Comments From froehlich 2007-04-26 17:38:02 ----

Wir könne beispielsweise alle Fehler, die während der Optimierung auftreten, in der Sub Button_Start_Click() auffangen. Ein entsprechendes Catch habe ich dort schon eingebaut, man braucht jetzt nur noch für jeden potentiellen Fehler eine Throw-Anweisung.

---- Additional Comments From huebner 2007-04-26 17:40:33 ----

Das klingt gut.

---- Additional Comments From froehlich 2007-04-27 16:53:31 ----

In Rev 221 überall außer in EVO_Kern strukturierte Ausnahmebehandlung eingeführt

---- Additional Comments From froehlich 2007-05-23 10:00:02 ----

In Rev 251: Alle Try / Catch Anweisungen entfernt, damit der Debugger bei einer Exception dort stehen bleibt, wo die Exception augetreten ist. Zusätzlich alle alten MsgBox Aufrufe, die auf fatale Fehler hinweisen, in Throw Exception umgewandelt.

Ab jetzt sollten alle fatalen Fehler mit Throw Exception behandelt werden, so dass der Debugger stehen bleibt. Nur Infomeldungen oder Warnungen sollten mit MsgBox behandelt werden.

Um das Programm anwenderorientiert zu machen, kann man später eine zentrale Try / Catch Anweisung einbauen, die alle Exceptions abfängt (z.B. in Button_Start_Click()).

Im Kern sind Exceptions noch nicht eingebaut.

---- Additional Comments From huebner 2007-08-04 18:10:07 ----

Selbst wenn die Compilierte Version angewendet wird tauchen die Fehlermeldungen auf. Konzept gut. Am besten alle Fehler gleich mit Hinweisen zur Fehlerbehebung versehen. Dann köännen Dritte die Fehler z.B. in den Eingabedateien selbst finden.

---- Additional Comments From huebner 2007-08-04 18:10:43 ----

Fantastisch.

---- Additional Comments From froehlich 2007-08-16 18:12:04 ----

Alle On Error Anweisungen im Kern müssen noch vernichtet werden! Wenn nicht unbedingt notwendig können die Funktionen dann auch in Subs ohne Rückgabewert verwandelt werden (myIsOK auch vernichten!)

---- Additional Comments From froehlich 2007-08-16 18:13:37 ----

als kritisch eingestuft, weil die On Error Anweisungen dazu führen, dass Fehler unbemerkt passieren.

--- Bug imported by froehlich 2007-08-23 16:17 ---

This bug was previously known as bug 102

froehlich on 2007-08-27:

Rev 429: Alle On Error Anweisungen entfernt.

TODO: Wenn nicht unbedingt notwendig können die Funktionen zu Subs ohne Rückgabewert verwandelt werden (myIsOK auch vernichten!)

froehlich on 2007-08-28:

Rev 431: Alle Funktionen der Klasse PES wo möglich in Subs umgewandelt. Überflüssige Übergabeparameter entfernt. myIsOK vernichtet!