Jūs esateŽurnalai / Ernestas Kardzys's blog / MS SQL Server 2005 ir C# [papildyta]

MS SQL Server 2005 ir C# [papildyta]


ParašėErnestas Kardzys - 2008 Kovo 26

Mano senesnėje programoje/žinutėje http://www.ernestas.info/?p=233 vienas mano blogo lankytojas pastebėjo rimtą klaidą. Dirbdamas su MS SQL duomenų baze aš gražinu -1 kaip klaidos pranešimą. Buvo pastebėta, kad tai rimta klaida. Tikslus pastebėjimas, tad į jį yra mano pasiteisinimai:
  1. Tai antra mano programa ant C#.
  2. Programa nerimta - skirta mokymosi tikslais.
  3. Ir aš iki išimčių apdorojimo (exception-handling) dar nepriskaičiau :D Žinojau, kad galima pagauti išimtį, o kaip ją "aukštyn" permesti - nežinojau. Tad šį tą atradau ir padariau :) Aišku, programa idealiai neveikia :)
Pasirodo, išimtį "aukštyn" permeta throw Išimties apdorojimas atrodo maždaug taip: catch (Exception ex) { ex = new Exception("Klaida"); throw; } http://www.ernestas.info/projects/csharp/TestinePrograma.zip

Dar kartą dėkingas ;)

OK, tau tikrai reikia knygą perskaityti prieš kodinant :)

Niekada negaudyk exceptionų, jei neturi ko veikti juos pagavęs - tiesiog juos praleisk. Exceptionai tam ir sugalvoti, kad būtų lengviau nei grąžinti error kodus - uždėk catch'us Main metode, kurie parodys error message'ą - viskas!

Jei vis dėlto užsinorėjai permesti exceptioną, pvz., turi papildomos informacijos, tai daryti reikia ne taip, kaip tu aprašei. Pirmas dalykas - nemėtyk pliko Exception'o - jei jau prisireikė permesti exceptioną, tai reiškia turi papildomos informacijos, kurią turėtum sudėti į savo custom exception objektą. O pats permetimas tokiu atveju daromas pasinaudojant exception chaininimu: catch(SqlException ex) { throw new TavoExceptionas("Blah", ex) }

Tokiu būdu, pagavęs exceptioną matysi ir tavo ir originalų exceptionus.

Tai tiek norėjau pasakyti :)

Skelbti naują komentarą

Šio laukelio turinys bus laikomas privatus ir nerodomas viešai.
  • Web puslapiu adresai ir el. pašto adresai automatiškai tampa nuorodomis.
  • Leidžiamos HTML žymės: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linijos ir paragrafai atskiriami automatiškai
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>. The supported tag styles are: <foo>, [foo].

Daugiau informacijos apie teksto formatavimą

CAPTCHA
Šis klausimas yra skirtas įsitikinti, jog jūs esate žmogus, ir sustabdyti automatinį šlamšto siuntimą.