C# 在调用堆栈中捕获未处理的异常

标签 c# exception

我有一个程序,它深入许多函数来加载文件,并且由于加载损坏文件的可能性,这些函数中的任何一个都可能出错。

我想 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/

相关文章:

c# - 使用通用参数的字符串名称构造类

c# - Android EditText 设置最大长度

amazon-web-services - 尝试在 AWS 上绑定(bind)套接字时出现 std@socket_bind 异常

c# - 如何确定异常的基类是否为 OperationCanceledException?

Python 3.6.4 Arcade 模块窗口错误? {pyglet.gl.lib.GLException : b'invalid enumerant'}

asp.net - 来自 ASP.NET 2 的 MySQL 存储过程调用抛出 Use Procedure bodies 异常

c# - WPF动画不流畅

C# 应用程序未正确关闭(窗体关闭后仍在内存中运行)

C# File.Exists 返回 false,文件确实存在

android - 初始化 ACRA 时出现 java.lang ExceptionInInitializerError