Kezdőoldal » Számítástechnika » Programozás » C# - Mért nem kezeli az...

C# - Mért nem kezeli az SqlException kivételt?

Figyelt kérdés

Try, catchekkel lefut teszi a dolgát, ha van hálózat.

Ha nincs hálózat akkor egyértelműen nem tud felcsatlakozni az sql szerverre.

Sajnos hiába készítem ezt a kivételkezést, leragad a program futása az sqlConn.Open()-nél és folyamatosan ezt írja ki az outputra:

Exception thrown: 'System.Data.SqlClient.SqlException' in System.Data.dll

nem ugrik tovább a kódban.


Így néz ki a kódom:


string query = "vmi lekérdezés";

using (SqlConnection sqlConn = new SqlConnection(nem érdekes))

using (SqlCommand cmd = new SqlCommand(query, sqlConn))

{

try

{

sqlConn.Open();

}

catch (SqlException e)

{

Console.WriteLine(e.Message);

return null;

}

catch (Exception e)

{

Console.WriteLine(e.Message);

return null;

}

DataTable dt = new DataTable();

dt.Load(cmd.ExecuteReader());

return dt;

}



2016. aug. 17. 19:55
 1/6 anonim ***** válasza:
Biztos ez a kód fut?
2016. aug. 17. 20:30
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
Ha van hálózat akkor igen.
2016. aug. 17. 21:15
 3/6 anonim ***** válasza:

Nem így értem, hanem, hogy biztos nem egy korábbi verziót futtatsz?

Breakpontok megállnak a kódban?

Buildelt újra!

2016. aug. 17. 21:43
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

Ezt VS 2015-ben írtam. Most hazajöttem és VS 12-ben futtatom. Igaz olyan 15 mp után de belép az SqlException ágba.

Holnap megnézem hogy a türelmetlenségem volt-e az oka hogy feltettem a kérdést.


Köszönöm a válaszod!

2016. aug. 17. 23:11
 5/6 anonim ***** válasza:

Az Using blokkot a fordító try-finally-nak fordítja. E mellett nem illik a catch ágat a kód kellős közepére rakni kódszervezési okokból.


Szerintem sokkal átláthatóbb lenne a kódod, és a hibára is könnyen rájönnél, ha ezt a struktúrát átalakítanád try-catch-finally-vé:


SqlConnection sqlConn;

SqlCommand cmd;

try

{

sqlConn = new SqlConnection();

sqlConn.Open();

cmd = new SqlCommand();

...

}

catch(ex)

{

...

}

finally

{

sqlConn.Dispose();

cmd.Dispose();

}

2016. aug. 18. 01:42
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:

Köszönöm a kiegészítést!


Kiderült türelmetlen vagyok, timeoutja a kapcsolódás próbálkozásnak az adatbázishoz 15 mp.

2016. aug. 18. 18:52

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!