Pagrindinis > Informacinės technologijos, Programavimas, SQL > MS SQL Server 2005 ir C# [papildyta]

MS SQL Server 2005 ir C# [papildyta]

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

  1. Kovas 26th, 2008 į 17:17 | #1

    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 :)

  2. Ernestas Kardzys
    Kovas 26th, 2008 į 19:00 | #2

    Dar kartą dėkingas ;)

  1. Citatų nėra.