C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■96707 / 3階層)  try...catch の文字列の設定方法について
□投稿者/ 魔界の仮面弁士 (2952回)-(2021/01/12(Tue) 10:47:08)
No96703 (天海 さん) に返信
> もっといい方法があれば教えてください。
> GetDatatable() は変更できないので
> SQL の記述の方法で何とかなるのかと思って質問させもらいました。

今回の質問は、GetDatatable が例外を握りつぶす実装になっているという問題点
(スタックトレースを破壊しているし、元の例外クラスの情報も削ぎ落してしまっている)は
理解したうえで、その GetDatatable の実装を変えることなく、
Transact-SQL 側の例外処理だけで、SQL 側からの例外メッセージを
C# 側に伝えたいという質問だと理解しました。


で、構文エラーに関しては BEGIN CATCH ブロックでは拾えないため、
sp_executesql で動的問い合わせに加工する必要があるでしょう。
https://www.dbsheetclient.jp/blog/?p=658


ただ、効率度外視、スペルミス等に実行時まで気づけない、そして
インジェクションの危険性が高まるなどといったデメリットの方が多いので、
GetDatatable そのものに手を入れるのが健全だと思いますよ…。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[2]: try...catch の文字列の設定方法について /天海 →Re[4]: try...catch の文字列の設定方法について /天海
 
上記関連ツリー

try...catch の文字列の設定方法について / 天海 (21/01/11(Mon) 11:30) #96698
Re[1]: try...catch の文字列の設定方法について / Azulean (21/01/11(Mon) 13:34) #96700
│└ Re[2]: try...catch の文字列の設定方法について / とっちゃん (21/01/11(Mon) 14:11) #96701
Re[1]: try...catch の文字列の設定方法について / WebSurfer (21/01/11(Mon) 13:33) #96699
│└ Re[2]: try...catch の文字列の設定方法について / 天海 (21/01/11(Mon) 14:52) #96703
│  ├ Re[3]: try...catch の文字列の設定方法について / WebSurfer (21/01/11(Mon) 18:12) #96704
│  │└ Re[4]: try...catch の文字列の設定方法について / 天海 (21/01/12(Tue) 08:29) #96705
│  │  └ Re[5]: try...catch の文字列の設定方法について / WebSurfer (21/01/12(Tue) 09:25) #96706
│  └ try...catch の文字列の設定方法について / 魔界の仮面弁士 (21/01/12(Tue) 10:47) #96707 ←Now
│    └ Re[4]: try...catch の文字列の設定方法について / 天海 (21/01/12(Tue) 11:20) #96708 解決済み
Re[1]: try...catch の文字列の設定方法について / WebSurfer (21/01/11(Mon) 14:50) #96702

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信