sql >> Databáze >  >> RDS >> Mysql

Jaká je výhoda použití try {} catch {} oproti if {} else {}

Blok try/catch bych použil, když by normální cesta kódem měla probíhat bez chyby, pokud skutečně nenastanou nějaké výjimečné podmínky – jako je výpadek serveru, vypršení platnosti vašich přihlašovacích údajů nebo nesprávné. Nezbytně bych to nepoužil k řešení nevýjimečných chyb - řekněme, že aktuální uživatel nemá správnou roli. To znamená, že když můžete rozumně očekávat a zvládnout chybu, která není výjimečným stavem, myslím, že byste měli provést kontrolu.

V případě, který jste popsali – nastavení a provedení dotazu, je blok try/catch vynikajícím způsobem, jak to zvládnout, jak normálně očekáváte, že dotaz bude úspěšný. Na druhou stranu budete pravděpodobně chtít zkontrolovat, že obsah výsledku odpovídá tomu, co očekáváte od logiky řídicího toku, spíše než se jen pokoušet použít data, která nemusí být platná pro váš účel.

Jedna věc, na kterou si chcete dát pozor, je nedbalé používání try/catch. Zkus/chytit by se nemělo používat k ochraně před špatným programováním – typ „Nevím, co se stane, když to udělám, tak to zabalím do pokusu/chytu a doufám v to nejlepší“ programování. Typicky budete chtít omezit druhy výjimek, které zachytíte, na ty, které nesouvisejí se samotným kódem (výpadek serveru, špatné přihlašovací údaje atd.), abyste mohli najít a opravit chyby, které s kódem souvisejí (nulové ukazatele atd. .).



  1. Zachycování chyb propojeného serveru

  2. Jak vložíte konstantu PHP do dotazu SQL?

  3. Nastavení a použití pgmemcache

  4. Chyba 'datetime2' při použití entity framework ve VS 2010 .net 4.0