Re(13): SQL Server Synchronisation
Geizhals » Forum » Programmierung » SQL Server Synchronisation (47 Beiträge, 303 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.  Re: SQL Server Synchronisation  (Pervasive am 06.03.2007, 18:13:20)
..  Re(2): SQL Server Synchronisation  (MidiFan am 06.03.2007, 18:14:56)
...  Re(3): SQL Server Synchronisation  (Pervasive am 06.03.2007, 18:15:19)
.  Re: SQL Server Synchronisation  (Ardjan am 06.03.2007, 21:19:31)
..  Re(2): SQL Server Synchronisation  (Pervasive am 06.03.2007, 21:21:40)
...  Re(3): SQL Server Synchronisation  (MidiFan am 06.03.2007, 21:26:29)
....  Re(4): SQL Server Synchronisation  (Pervasive am 06.03.2007, 21:27:36)
...  Re(3): SQL Server Synchronisation  (Ardjan am 06.03.2007, 21:32:16)
....  Re(4): SQL Server Synchronisation  (Pervasive am 06.03.2007, 21:33:16)
.....  Re(5): SQL Server Synchronisation  (Ardjan am 06.03.2007, 21:39:03)
......  Re(6): SQL Server Synchronisation  (Pervasive am 06.03.2007, 21:44:20)
.......  Re(7): SQL Server Synchronisation  (Ardjan am 06.03.2007, 21:46:12)
........  Re(8): SQL Server Synchronisation  (Pervasive am 06.03.2007, 21:47:52)
.........  Re(9): SQL Server Synchronisation  (Ardjan am 07.03.2007, 10:08:45)
..........  Re(10): SQL Server Synchronisation  (googleDork am 07.03.2007, 11:05:56)
...........  Re(11): SQL Server Synchronisation  (Ardjan am 07.03.2007, 11:20:23)
......  Re(6): SQL Server Synchronisation  (Somnatic am 06.03.2007, 22:01:02)
.......  Re(7): SQL Server Synchronisation  (Ardjan am 06.03.2007, 22:31:36)
........  Re(8): SQL Server Synchronisation  (Somnatic am 06.03.2007, 22:36:45)
.......  Re(7): SQL Server Synchronisation  (Cereal_Poster am 07.03.2007, 10:37:10)
........  Re(8): SQL Server Synchronisation  (Somnatic am 07.03.2007, 11:16:29)
.........  Re(9): SQL Server Synchronisation  (Cereal_Poster am 07.03.2007, 11:26:31)
..........  Re(10): SQL Server Synchronisation  (Somnatic am 07.03.2007, 11:28:27)
...........  Re(11): SQL Server Synchronisation  (Cereal_Poster am 07.03.2007, 11:34:00)
............  Re(12): SQL Server Synchronisation  (Somnatic am 07.03.2007, 11:43:53)
.............
Re(13): SQL Server Synchronisation
07.03.2007, 14:02:09
Hätte ich ein bißchen anders gesehen....

Grundsätzlich teile ich deine Beschreibung des semantischen Unterschieds...

Für "normale" Behandlung ist if/then/... super...
Für "anormale" Ereignisse eher try/catch...

try/catch-Beispiel, das IMHO Sinn macht:
try { a=b/c ; b = d/a ; f=a/(b*c) ; h=2*3/f^g } catch (DivisionByZeroException ex) { //Behandle Division durch 0 }

Natürlich könnte man das alles auch durch if/then-Lösen... Unter Einsatz von Hilfsvariablen für den Nenner, die jede vorab einzeln auf 0 überprüft werden... Dann wird's aber unnötig lang.

Problematisch ist an Exceptions IMHO die Fehlersuche. Beispiel in Pseudocode:


static function neuerSpieler(String name, Team team) returns Spieler
{
  // legt einen Spieler mit Namen name an und ordnet ihn einem Team zu.
  // liefert im Fehlerfalle NULL als Spieler zurück.
var spieler = null;
try {
   Spieler spieler=new Spieler(name);
   team.add(spieler);
   spieler.setpoints(0);
} catch (Exception ex) {
  spieler = null;
}
return spieler
}


Dieses Beispiel (leider oft ähnliches auch in Lehrbüchern gefunden) zeigt die Probleme bei Exceptionhandling - alles IMHO :-)

Auf den ersten Blick sieht's nicht ganz schlimm aus...

Fürchterlich wirds aber, wenn spieler.setpoints() eine Exception werfen kann...
Denn dann hätten wir einen angelegten Spieler im Team - er würde nur nicht zurückgeliefert. Im besten Falle "nur" ein Memoryleak... Schlimm aber, wenn man später über die Teams iteriert und eine Mitgliederliste baut... Denn dann gibt's eine Referenz auf einen Spieler (wg. team.add() ), die aber zu keinem "gültigen" Spieler führt (zumindest zu einem, bei dem - warum auch immer - setpoints() nicht klappte...

Noch schlimmer sind oftmals Funktionen, wo es sich der Programmierer einfach machte - und ein throws in der Deklaration angab.... Wenn du so eine Funktion verwendest, muß man sich gelegentlich für jede einzelne Zeile der Funktion ansehen, wie dein catch() aussehen müßte...

Ich will nicht über try/catch herziehen - aber IMHO(!) sollte man mit try/catch sehr sparsam umgehen... Und insbesondere auf throws weitestgehend verzichten...

Und es eigentlich nur für Ausnahmefehler verwenden, wobei ein if-then-else oft den Vorteil hat, daß der Fehler genau da behandelt wird, wo er passiert - und dadurch der Code oft (natürlich nicht immer) bei weitem lesbarer wird.

Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
..............  Re(14): SQL Server Synchronisation  (Cereal_Poster am 07.03.2007, 14:09:18)
...............  Re(15): SQL Server Synchronisation  (googleDork am 07.03.2007, 14:34:46)
...............  Re(15): SQL Server Synchronisation  (Somnatic am 07.03.2007, 15:48:28)
..............  Re(14): SQL Server Synchronisation  (Somnatic am 07.03.2007, 15:48:00)
...............  Re(15): SQL Server Synchronisation  (googleDork am 07.03.2007, 17:24:12)
......  Re(6): SQL Server Synchronisation  (googleDork am 07.03.2007, 11:00:18)
.......  Re(7): SQL Server Synchronisation  (Ardjan am 07.03.2007, 11:04:26)
.......  Re(7): SQL Server Synchronisation  (Cereal_Poster am 07.03.2007, 11:27:51)
........  Re(8): SQL Server Synchronisation  (googleDork am 07.03.2007, 11:32:50)
.........  Re(9): SQL Server Synchronisation  (Cereal_Poster am 07.03.2007, 11:35:35)
..........  Re(10): SQL Server Synchronisation  (googleDork am 07.03.2007, 14:04:11)
.......  Re(7): SQL Server Synchronisation  (Ardjan am 07.03.2007, 14:54:33)
........  Re(8): SQL Server Synchronisation  (googleDork am 07.03.2007, 15:00:41)
.........  Re(9): SQL Server Synchronisation  (Ardjan am 07.03.2007, 16:01:39)
.....  Re(5): SQL Server Synchronisation  (MidiFan am 06.03.2007, 21:51:04)
......  Re(6): SQL Server Synchronisation  (Pervasive am 06.03.2007, 21:54:19)
.  Re: SQL Server Synchronisation  (googleDork am 07.03.2007, 11:11:36)
..  Re(2): SQL Server Synchronisation  (MidiFan am 07.03.2007, 12:48:21)
...  Re(3): SQL Server Synchronisation  (googleDork am 07.03.2007, 14:54:20)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung