@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

Tyr Catchについて

1
投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-03-31 10:11
下記の様にTryの中で、強制的にSqlエラーを投げるような処理を書いたのですが
この箇所がコンパイルエラーとなります。どうしてでしょうか?

Try
Throw New SqlException("aaaaa")
Catch sqlerr As SqlException
Lbl_Message.Text = sqlerr.Message

karajan
ベテラン
会議室デビュー日: 2002/07/05
投稿数: 89
投稿日時: 2003-03-31 12:41
SqlExceptionは性格上自分で新規に作成するものではなくデータプロバイダ(この場合はSQL Server .NET Data Provider)でしか生成できないではないでしょうか。
MSDNを見ても公開コンストラクタは用意されていないようですし・・・。

SqlExceptionを生成するにはSqlサーバでどのようなエラーが発生したかを知らなければならないので、結局プロバイダが投げたSqlExceptionが必要になるかと思います。
キャッチして独自の処理を実行後に再びSqlExceptionを上位の処理に投げる場合はそのままthrowしてやればよいので、プログラムで新規にSqlExceptionを生成する必要はないと思います。

damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-03-31 14:49
分かりました。ありがとうございました。

引用:

karajanさんの書き込み (2003-03-31 12:41) より:
SqlExceptionは性格上自分で新規に作成するものではなくデータプロバイダ(この場合はSQL Server .NET Data Provider)でしか生成できないではないでしょうか。
MSDNを見ても公開コンストラクタは用意されていないようですし・・・。

SqlExceptionを生成するにはSqlサーバでどのようなエラーが発生したかを知らなければならないので、結局プロバイダが投げたSqlExceptionが必要になるかと思います。
キャッチして独自の処理を実行後に再びSqlExceptionを上位の処理に投げる場合はそのままthrowしてやればよいので、プログラムで新規にSqlExceptionを生成する必要はないと思います。



1

スキルアップ/キャリアアップ(JOB@IT)