我有以下代码。只有1个捕获异常可以吗?这段代码可以抛出什么其他异常?。
在异常处理中,为什么我们不能只有一个例外并记录所有错误?。
try {
if (File.Exists(inputFilename))
{
// do something
File.WriteAllText()
}
else {
// do somthing
}
}
catch (Exception ex)
{
_eventLog.WriteEntry(ex.Message + "\r\n" + ex.StackTrace, EventLogEntryType.Error);
}
由于
答案 0 :(得分:2)
这段代码可以抛出什么其他异常
您可以在function page (MSDN)中看到所有可能的例外情况:
为什么我们不能只有一个例外并记录所有错误
如果您想以不同方式处理它,您希望捕获不同类型的异常。例如:
try
{
if (File.Exists(inputFilename))
{
// do something
File.WriteAllText(path, contents);
}
else
{
// do somthing
}
}
catch (DirectoryNotFoundException dirNotFoundEx)
{
MessageBox.Show("Directory does not exist.Try to use diffrent folder.");
}
catch (Exception ex)
{
_eventLog.WriteEntry(string.Format("{0}{1}{2}", ex.Message, Environment.NewLine, ex.StackTrace), EventLogEntryType.Error);
}
}
catch
块的顺序很重要。 see here