2011-07-21 125 views
2

我嘗試重新拋出異常,但它不起作用。 我在Visual Studio中得到'Exception was unhandled'錯誤。異常未處理 - 重新拋出異常

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語句。