Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist der Vorteil der Verwendung von try {} catch {} gegenüber if {} else {}

Ich würde den Try/Catch-Block verwenden, wenn der normale Pfad durch den Code fehlerfrei verlaufen sollte, es sei denn, es liegen wirklich einige außergewöhnliche Bedingungen vor – wie der Server ist ausgefallen, Ihre Anmeldeinformationen sind abgelaufen oder falsch. Ich würde es nicht unbedingt verwenden, um nicht außergewöhnliche Fehler zu behandeln – sagen wir, dass der aktuelle Benutzer nicht in der richtigen Rolle ist. Das heißt, wenn Sie vernünftigerweise einen Fehler erwarten und behandeln können, der kein außergewöhnlicher Zustand ist, sollten Sie meiner Meinung nach Ihre Überprüfungen durchführen.

In dem Fall, den Sie beschrieben haben – das Einrichten und Ausführen einer Abfrage, ist ein Try/Catch-Block eine hervorragende Möglichkeit, damit umzugehen, da Sie normalerweise erwarten, dass die Abfrage erfolgreich ist. Auf der anderen Seite möchten Sie wahrscheinlich überprüfen, ob der Inhalt von result mit der Kontrollflusslogik Ihren Erwartungen entspricht, anstatt nur zu versuchen, Daten zu verwenden, die für Ihren Zweck möglicherweise nicht gültig sind.

Eine Sache, auf die Sie achten sollten, ist die nachlässige Verwendung von try/catch. Try/Catch sollte nicht verwendet werden, um sich vor schlechter Programmierung zu schützen – die Art „Ich weiß nicht, was passieren wird, wenn ich das tue, also werde ich es in ein Try/Catch packen und auf das Beste hoffen“ Art der Programmierung. Normalerweise möchten Sie die Arten von Ausnahmen, die Sie abfangen, auf diejenigen beschränken, die nicht mit dem Code selbst zusammenhängen (Server ausgefallen, ungültige Anmeldeinformationen usw.), damit Sie Fehler finden und beheben können, die mit dem Code zusammenhängen (Nullzeiger usw.). .).