0

これはあなたにとっては簡単なことかもしれませんが、私にとってはそうではありません。私はこのコードを持っています:

Private int InsertData()
{ 
  int rezultat = 0;
       try
       {
           if (sqlconn.State != ConnectionState.Open)
           {
               sqlconn.Open();
           }
           rezultat = (int)cmd.ExecuteScalar();

       }
       catch (Exception ex)
       {
           lblMesaje.Text = "Eroare: " + ex.Message.ToString();

       }
       finally
       {
           if (sqlconn.State != ConnectionState.Closed)
           {
               sqlconn.Close();
           }
       }

       return rezultat;
}

テーブルに新しいレコードを挿入するだけです。これが「指定されたキャストは無効です」というエラーをスローしたとしても。"rezultat=(int)cmd.ExecuteScalar();" - コードが実行され、行がデータベースに挿入され、実行が続行されます。

続く理由は?まーびーまだtry catchがわかりません笑笑 :)

ありがとうございました!

4

1 に答える 1

0

あなたのコードでは、例外を明示的にキャッチします。そのため、実行が続行されます。例外がキャッチされた場合に実行を停止したい場合は、例外をスローする必要があります。新しい例外をスローします(ex.getMessage());

しかし、それはベストプラクティスではありません。高レベルの Exception クラスではなく、宣言された例外のみをキャッチするようにしてください。

于 2012-12-16T17:17:15.143 に答える