2016-04-08 8 views
-1

C#でTry Catch文について質問があります。私は、このようなC#try Catch文クエリ

try 
{ 
    string text = sometext; 
    var Auto_IMPORT = new AutoImport(); 
    Auto_IMPORT.StartProcessing(); 
    Console.WriteLine(sometext); 
} 
catch(Exception Ex) 
{ 
    //Would this catch AutoImport.StartProcessing() exceptions? 
    Console.WriteLine(ex.Message); 
} 

として文を持っていた場合

は、例えば自動インポートは、クラスライブラリであり、私は、処理を開始するには、いくつかのロジックを呼んでいます。 AutoImport.StartProcessing()内のロジック内で例外が発生した場合、このtry文はその例外をキャッチしますか、それともその範囲外になるのでしょうか?それはAuto_IMPORT.StartProcessing()の動作に依存アドバンス

+0

私はそれがだろう、と思うの例外をキャッチしました。 tryブロック内で発生した例外を検出します。 – Shanid

+2

例外が同じスレッドで発生した場合はyesです。 –

+1

サードパーティライブラリがどのように構築されているかわからないので、この質問はそのままです。そのようなDLLを提供している会社に連絡する必要があります。つまり、フレームワークは何かが壊れたときに独自のカスタム例外をスローする傾向がありますが、これは決して標準ではありません。 – npinti

答えて

-1

感謝。例外がキャッチされていない場合は、例外が発生します。一方、内部コードオフAuto_IMPORTが例外をキャッチし、新しい例外をスローしない場合、例外は発生しません。

-1

はい。
tryブロック内のエラーを検出します。彼らが何らかのクラスの何らかの方法にいるかどうかは関係ありません。でテスト

class _Class 
    { 
     public string name; 
     public void myMethod() 
     { 
      int i; 
      string s = "asda"; 
      i = int.Parse(s); 
     } 
    } 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      try 
      { 
       _Class blah = new _Class(); 
       blah.name = "Steve"; 
       blah.myMethod(); 
      } 
      catch(Exception e) 
      { 
       Console.WriteLine(e.ToString()); 
      } 
      Console.ReadLine(); 
     } 

はint.Parse