在控制台中尝试键入c#



我需要用try-catch-fin。首先,我是编程的新手。回到问题。

在我想打开一个不存在的文本中。

在Catch Block中,Message Box应以FilenotfoundException出现。

我仍然不知道我应该把什么放在最后一个障碍物中。

try
{
   FileStream File = new FileStream("beispiel.txt", FileMode.Open);
}
catch (FileNotFoundException fnfex)
{
   //MessageBox with fnfex
}
finally
{
   //idk
}

谢谢

最终被用来保证做某事的方法,即使有例外。在您的情况下,您可以例如处置流,但通常最好将语句用于实现IDISPOSABLE的对象,因此您只能执行

using (var stream = new FileStream(...))
{
   // do what ever, and the stream gets automatically disposed.
}

请参阅:

使用语句

idisposable

DialogResult result;
try
{
    FileStream File = new FileStream("beispiel.txt", FileMode.Open);
}
catch (FileNotFoundException fnfex)
{
    result =
        MessageBox.Show(
            this, 
            // Message: show the exception message in the MessageBox
            fnfex.Message, 
            // Caption
            "FileNotFoundException caught", 
            // Buttons
            MessageBoxButtons.OK,
            MessageBoxIcon.Question, 
            MessageBoxDefaultButton.Button1, 
            MessageBoxOptions.RightAlign);
}
finally
{
    // You don't actually NEED a finally block
}

最终是始终执行的代码。我要说的是,最终使用块清理可能存在的任何东西是一种常见的模式。例如,如果您有文件流...

请问,如果类型不正确,我目前没有C#,但是模式仍然存在...

FileStream file;
try {
    file = new FileStream("example.txt", FileMode.Open);
    file.open();
}
catch (Exception ex) {
    //message box here
}
finally {
    // Clean up stuff !
    if (file != null) {
        file.close()
    }
}

catch and 的常见用法最后一起是在 try block中获得和使用资源,处理 catch 块中的特殊情况,并在>最后 block中释放资源。有关更多信息,请查看https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/try-catch-finally

当您只想捕获异常然后打印一条消息时,您可以简单地摆脱终于块,如下:

try
{
   using (FileStream File = new FileStream("beispiel.txt", FileMode.Open)){}
}
catch (FileNotFoundException fnfex)
{
   //MessageBox with fnfex
   MessageBox.Show(fnfex.Message);
}

使用语句确保对象一旦范围删除,并且不需要明确的代码或最后来确保此发生。

除了人们已经对尝试...捕捉...终于阻止了您所寻找的是

try {
    file = new FileStream("example.txt", FileMode.Open);
    file.open();
}
catch (Exception ex) {
    MessageBox.Show(ex.Message);
}

但是您需要在项目中添加对system.windows.forms的引用,然后将使用语句添加到类

using System.Windows.Forms;

或,如果您只想在控制台中显示消息,则可以使用

Console.WriteLine(e.Message);

忘记参考

相关内容

  • 没有找到相关文章

最新更新