简单的异常处理

时间:2019-05-22 10:52:42

标签: c# exception

嘿,如果我有这个例外:

try
{
    List<string> inputFileLines = GetInputFileFormatted(mailFile);
}
catch (FileNotFoundException ex)
{
    Console.WriteLine("File not found");
}

如何在try语句之外访问inputFileLines?

2 个答案:

答案 0 :(得分:0)

List<string> inputFileLines = null;
try
{
    inputFileLines = GetInputFileFormatted(mailFile);
}
catch (FileNotFoundException ex)
{
    Console.WriteLine("File not found");
}
//now you can access inputFileLines outside of 'try' and check if it is null or not.

答案 1 :(得分:0)

  

如何在try语句之外访问inputFileLines?

您当前的作用域在try块(块作用域)内,并且只能在其中访问...

try
{
    List<string> inputFileLines = GetInputFileFormatted(mailFile);
}
catch (FileNotFoundException ex)
{
    Console.WriteLine("File not found");
}

如果您要在try之外访问它,则需要将其范围(方法范围)移到外部(如前所述)。

 List<string> inputFileLines = null;
 try
    {
        inputFileLines = GetInputFileFormatted(mailFile);
    }
    catch (FileNotFoundException ex)
    {
        Console.WriteLine("File not found");
    }

按评论编辑(基于我问过的问题)

  

如果inputFileLines为null,您打算如何处理?

您的答复是:

  

多数民众赞成在那件事,我希望该程序只是停止如果它为空?但是怎么   我这样做

我问这的原因是,如果要退出应用程序,您不需要对其进行声明。查找Application.Exit方法,该方法通知所有消息泵它们必须终止,然后在处理完消息后关闭所有应用程序窗口。

try
{
    List<string> inputFileLines = GetInputFileFormatted(mailFile);
    if(inputFileLines == null)
       System.Windows.Forms.Application.Exit();
}
catch (FileNotFoundException ex)
{
    Console.WriteLine("File not found");
    System.Windows.Forms.Application.Exit();
}

现在,如果该列表为空或引发异常,它将退出应用程序。

恕我直言,请登录scope of variables,以更好地了解它们的访问方式。

参考:

Application.Exit方法https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.application.exit?view=netframework-4.8