我需要用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);
忘记参考