2011-07-21 26 views
2

例外を再試行しようとしましたが、機能しません。 ビジュアルスタジオで「例外が処理されませんでした」というエラーが表示されます。例外が処理されなかった - 再スロー例外

public KeyValueConfigurationCollection getMyAppSetting() 
{ 
    Configuration config; 
    ConfigurationFileMap configFile; 
    try 
    { 
    configFile = new ConfigurationFileMap(ConfigurationManager.OpenMachineConfiguration().FilePath); 
    config = ConfigurationManager.OpenMappedMachineConfiguration(configFile); 
    AppSettingsSection MyAppSettingSection = (AppSettingsSection)config.GetSection("xxx/appSettings"); 
    MyAppSettingSection.SectionInformation.AllowExeDefinition = ConfigurationAllowExeDefinition.MachineToRoamingUser; 
    return MyAppSettingSection.Settings; 
    } 
    catch (Exception ex) 
    { 
    logger.Fatal("..."); 
    throw; 
    } 
} 

このメソッドはクラスライブラリに属しており、コンソールアプリケーションから呼び出します。 お願いします。

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

+0

なぜあなたはそれをキャッチした後に例外をスローしていますか?実際のコードを投稿してください。私はあなたのロギングに "..."という言葉が疑わしいので、それは意味をなさないからです。 –

答えて

8

期待どおりに動作しています。

例外をキャッチしてから再発行します。再スローされた例外は処理されません。だからあなたはエラーを受けている。

+0

ああ...ありがとう!私は思慮がありませんでした。ありがとう! – ngi

0

いくつかの処理を行い、例外をスローすることは、スタック内のコードの上のcatchステートメントによってキャッチするために利用できるようにすることです。例外がどこにもキャッチされていない場合は、CLRレベルまで上がり、プロセスを停止します。

例外をキャッチしたい場合は、例外をキャッチしてから移動してください。単純です。catchステートメントに戻さないでください。

関連する問題