3

c# で、Oracle データベースへの (非) 接続に関するすべてのエラーをキャッチできますか?

不適切に記述されたクエリに関するエラーはキャッチしたくありませんが、No listener, connection lost... などのエラーのみをキャッチします。

クエリが正しく記述されていない (またはテーブルが欠落している) 場合、これは私のせいです。しかし、Oracle またはネットワークがダウンしている場合、これは別の部門が保持する必要があります。

4

6 に答える 6

2

try catch 部分で接続を構築するコードを記述します。

try
{
   BuildConnection(connectionString);
}
catch (OracleException ex)
{
   //Connectivity Error
}
于 2013-06-06T12:41:49.220 に答える
1

このタイプの問題に対する簡単な答えは Use Try CatchBlock like

try
{
   // your code
}
catch (OracleException ex)
{

}

MSDN ヘルプ

于 2013-06-06T12:47:55.627 に答える
1

ORA-12150 から ORA-12236 までのエラーは、接続エラーに関連しています。いくつかの例:

ORA-12154: TNS: 指定された接続識別子を解決できませんでした

ORA-12152: TNS: 中断メッセージを送信できません

ORA-12157: TNS: 内部ネットワーク通信エラー

https://docs.oracle.com/cd/E11882_01/server.112/e17766/net12150.htmを参照してください。

于 2019-07-02T08:17:47.917 に答える
0

確かに、特定の例外の種類をキャッチできます。または、それらがすべて同じ例外の種類である場合は、それをキャッチして、それが特定の種類であるかどうかを確認し、処理したくないものを再スローすることができます。構文がありません。例を次に示します...

try
{
   // your Oracle code
}
catch (OracleException ex)
{
   if (ex.Message == "Something you don't want caught")
   {
      throw;
   }
   else
   {
       // handle
   }
}
于 2013-06-06T12:44:50.783 に答える