sql >> Databasteknik >  >> RDS >> Mysql

Vad är fördelen med att använda försök {} catch {} kontra om {} annat {}

Jag skulle använda försök/fångst-blocket när den normala sökvägen genom koden ska fortsätta utan fel om det inte verkligen finns några exceptionella förhållanden - som att servern är nere, dina referenser har gått ut eller är felaktiga. Jag skulle inte nödvändigtvis använda det för att hantera icke-exceptionella fel - säg som att den nuvarande användaren inte har rätt roll. Det vill säga när du rimligen kan förvänta dig och hantera ett fel som inte är ett exceptionellt tillstånd, tycker jag att du ska göra dina kontroller.

I det fall du har beskrivit -- att ställa in och utföra en fråga, är ett försök/fångstblock ett utmärkt sätt att hantera det som du normalt förväntar dig att frågan ska lyckas. Å andra sidan vill du förmodligen kontrollera att innehållet i resultatet är vad du förväntar dig med kontrollflödeslogik snarare än att bara försöka använda data som kanske inte är giltiga för ditt syfte.

En sak som du vill hålla utkik efter är slarvig användning av try/catch. Prova/fånga bör inte användas för att skydda dig mot dålig programmering -- "Jag vet inte vad som kommer att hända om jag gör det här så jag ska slå in det i ett försök/fånga och hoppas på det bästa" av programmering. Vanligtvis vill du begränsa de typer av undantag du fångar till de som inte är relaterade till själva koden (server nere, dåliga referenser, etc.) så att du kan hitta och fixa fel som är kodrelaterade (nullpekare, etc.) .).



  1. Följ med oss ​​i Las Vegas för SQLintersection och spara $100

  2. Ta bort inledande nollor från ett fält i en SQL-sats

  3. Uppföljning av marköralternativ

  4. Mysql för att välja månadsvis post även om data inte finns