我有一个程序,它深入许多函数来加载文件,并且由于加载损坏文件的可能性,这些函数中的任何一个都可能出错。
我想 try catch 在调用加载函数的函数中加载这些文件时抛出的任何未处理的异常。
是否可以在加载过程中调用的每个函数中不放入 try catch 来执行此操作?
try {
var loadedFile = new LoadedFile(path);
fileList.Add(loadedFile);
}
catch (Exception e) {
Console.WriteLine("Error Loading File");
}
最佳答案
是的,这是可能的。只需用 try catch 包围最顶层的函数调用。任何异常都会被抛出。但是,您应该在它出现的函数中捕获它,并且假设可以,在该函数内修复异常的原因。如果你不能,你的程序一定会失败,因为它无法完成任务。
例如,如果文件损坏,程序应该失败;如果文件有来自另一个进程的锁,您可以等到锁被释放(假设它曾经被释放),然后再继续或以其他方式失败。
关于C# 在调用堆栈中捕获未处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37487510/