如何捕获"FileNotFoundException"异常?

Ada*_*ave -2 c# filenotfoundexception

我是编程新手,我想弄清楚如何捕获错误"FileNotFoundException".我的代码是为了搜索现有的文本文档(从输入到文本框中的内容)并将其加载到我的listbox1.我解决了这个问题.但是,出现了一个新问题!如果用户输入了错误的名称/数字,它只会使应用程序崩溃,导致无法找到该文件.有没有办法让程序显示错误消息"找不到文件".或者根本不崩溃整个程序?提前致谢!

     private void btnEnter_Click(object sender, EventArgs e)
    {   
        FileInfo file = new FileInfo(txtExisting.Text + ".txt");
        StreamReader stRead = file.OpenText();
        while (!stRead.EndOfStream)
        {
            listBox1.Items.Add(stRead.ReadLine()); 
        }  
    }
Run Code Online (Sandbox Code Playgroud)

Mat*_*adu 5

您应该使用try-catch语句来处理异常.

private void btnEnter_Click(object sender, EventArgs args)
{   
    try{
        FileInfo file = new FileInfo(txtExisting.Text + ".txt");
        StreamReader stRead = file.OpenText();
        while (!stRead.EndOfStream)
        {
            listBox1.Items.Add(stRead.ReadLine()); 
        }  
    } 
    catch (FileNotFoundException e)
    {
        // FileNotFoundExceptions are handled here.
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上,try部分中的代码将按正常情况执行,但如果出现错误,将执行catch语句,特别是:

抛出异常时,公共语言运行库(CLR)会查找处理此异常的catch语句.

这意味着如果您希望遇到不同类型的异常,try-catch语句可以有多个catch块,因此可以相应地处理它们.

更多信息可以在这里找到.

对于用户体验,通过显示消息与用户沟通出错是很好的.