exception-handling相关内容

链式异常有什么好处

我不明白在代码中使用链式异常的好处. 考虑 Java 世界中的 ResourceLoader 示例,如果程序员知道遇到ResourceLoadException的可能性,为什么不捕获相同的异常而不是SQLException?否则,程序员可以在同一代码中捕获这两个异常,而不必抛出一个新的 Throwable 实例? 解决方案 谁能提供有关链式异常需求的信息? 这篇文章说得很好 ..
发布时间:2021-12-17 17:28:08 Java开发

Java 未捕获的全局异常处理程序

我有一个应用程序,需要编写一个自定义的全局未捕获异常处理程序.我已经阅读了所有 stackoverflow 线程,但每个线程都缺少一个清晰而简单的示例,说明如何实现这一点. 考虑下面这个简单的例子: public static void log(String msg) 抛出异常 {String logPath = "/application/logs/java.log";日历 c = ne ..
发布时间:2021-12-17 17:27:49 Java开发

当构造函数抛出异常时会运行哪些析构函数?

在 C++ 中,如果构造函数抛出异常,会运行哪些析构函数? 特别是,如果异常发生在初始化列表或主体期间,这有什么区别吗? 另外,继承和成员呢?据推测,所有已完成的建筑都会被破坏.如果只构造了一些成员,那么只有那些成员会被破坏吗?如果存在多重继承,所有完成的构造函数都会被破坏吗?虚拟继承会改变什么吗? 解决方案 如果构造函数抛出异常,会运行哪些析构函数? 在该范围内完全创建 ..
发布时间:2021-12-17 17:27:25 C/C++开发

Mockito 如何模拟和断言抛出的异常?

我在 junit 测试中使用 mockito.您如何使异常发生然后断言它具有(通用伪代码) 解决方案 BDD Style解决方案(更新到 Java 8) Mockito 单独不是处理异常的最佳解决方案,使用 Mockito 和 Catch-Exception Mockito + 捕获异常 + AssertJ given(otherServiceMock.bar()).will ..
发布时间:2021-12-17 17:26:09 Java开发

这是捕获非特定异常(例如 System.Exception)的不好做法吗?为什么?

我目前正在做一个代码审查,下面的代码让我跳了起来.我看到此代码存在多个问题.你是否同意我的观点?如果是这样,我如何向我的同事解释这是错误的(顽固的类型...)? 捕获一般异常(Exception ex) 使用“if (ex is something)"而不是使用另一个 catch 块 我们吃 SoapException、HttpException 和 WebException.但是,如果 ..
发布时间:2021-12-17 17:24:26 C#/.NET

C++ 异常会通过 C 代码安全地传播吗?

我有一个 C++ 应用程序,它调用 SQLite(SQLite 在 C 中)sqlite3_exec() 反过来又可以调用我在 C++ 中实现的回调函数.SQLite 被编译成静态库. 如果异常逃脱了我的回调,它会通过 SQLite 的 C 代码安全地传播到调用 sqlite3_exec() 的 C++ 代码吗? 解决方案 我猜这与编译器有关.但是,在回调中抛出异常将是一个非常糟糕的 ..
发布时间:2021-12-17 17:23:36 C/C++开发

堆栈跟踪中的错误行号

我有这个代码 试试{//这里产生异常!!!}抓住{SqlService.RollbackTransaction();扔;} 在这段代码中调用了上面的代码 试试{//这里被称为包含上面代码的方法}捕获(异常前){处理异常(前);} 作为参数传递给方法“HandleException"的异常包含堆栈跟踪中“throw"行的行号,而不是生成异常的实际行.有谁知道为什么会发生这种情况? ED ..
发布时间:2021-12-17 17:21:37 C#/.NET

如何检查 IOException 是否为 Not-Enough-Disk-Space-Exception 类型?

如何检查 IOException 是否为“磁盘空间不足"异常类型? 目前我检查消息是否与“磁盘空间不足"之类的内容匹配,但我知道如果操作系统语言不是英语,这将不起作用. 解决方案 您需要检查 HResult 并针对 ERROR_DISK_FULL (0x70) 和 ERROR_HANDLE_DISK_FULL (0x27),其中 可以通过 OR 与 转换为 HResults0x800 ..
发布时间:2021-12-17 17:21:27 C#/.NET

Laravel 捕获 TokenMismatchException

可以使用 try catch 块捕获 TokenMismatchException 吗?我希望它显示实际页面并仅显示错误消息,而不是显示显示“VerifyCsrfToken.php 第 46 行中的 TokenMismatchException..."的调试页面. 我对 CSRF 没有任何问题,我只是希望它仍然显示页面而不是调试页面. 复制(使用火狐):步骤: 打开页面(http ..
发布时间:2021-12-17 17:20:48 PHP

C++ 异常处理增加了多少占用空间

这个问题对于嵌入式开发尤其重要.异常处理为生成的二进制输出增加了一些足迹.另一方面,无一例外,错误需要以其他方式处理,这需要额外的代码,最终也会增加二进制大小. 我对你的经历很感兴趣,尤其是: 您的编译器为异常处理添加的平均占用空间是多少(如果您有此类测量)? 就二进制输出大小而言,异常处理是否真的比其他错误处理策略更昂贵(很多人这么说)? 对于嵌入式开发,您建议采用什么错误处理策 ..
发布时间:2021-12-17 17:20:39 C/C++开发

投掷或尝试捕捉

在决定是将 throws 子句添加到方法还是使用 try-catch 时,一般的经验法则是什么? 根据我自己的阅读,throws 应该在调用者违反合同(传递的对象)结束时使用,而 try-catch 应该在方法内部执行的操作期间发生异常时使用.这个对吗?如果是这样,调用方应该怎么做? P.S:通过 Google 和 SO 进行搜索,但希望得到明确的答案. 解决方案 仅当您可以以 ..
发布时间:2021-12-17 17:19:29 Java开发

在 Python 中捕获所有异常的坏主意

为什么在 Python 中捕获所有异常是个坏主意? 我知道使用 except: 子句捕获所有异常甚至会捕获“特殊"python 异常:SystemExit、KeyboardInterrupt 和GeneratorExit.那么为什么不直接使用 except Exception: 子句来捕获所有异常? 解决方案 因为它非常不具体,并且不能让您做任何有趣的异常.此外,如果您正在捕获每个异 ..
发布时间:2021-12-17 17:18:20 Python

如何在 .NET 应用程序中捕获所有异常/崩溃

可能的重复: .NET - 最好的方法是什么实现“捕获所有异常处理程序" 我有一个 .NET 控制台应用程序崩溃并向用户显示一条消息.我的所有代码都在 try{} catch(Exception e){} 块中,但偶尔仍会显示错误. 在 Win32 应用程序中,您可以通过安装各种异常处理程序来捕获所有可能的异常/崩溃: /* C++ exc 处理程序 */_set_se_trans ..
发布时间:2021-12-17 17:17:39 C#/.NET

何时使用 try/catch 块?

我已经阅读并理解了 Try/Catch 块的作用以及为什么使用它很重要.但我一直不知道何时/何地使用它们.有什么建议吗?我将在下面发布我的代码示例,希望有人有时间为我的示例提出一些建议. public AMPFileEntity(string filename){transferFileList tfl = 新的 transferFileList();_AMPFlag = tfl.isAMPF ..
发布时间:2021-12-17 17:15:19 C#/.NET

我想异常处理“列表索引超出范围".

我正在使用 BeautifulSoup 并解析一些 HTML. 我从每个 HTML 中获取特定数据 (使用 for 循环) 并将该数据添加到特定列表中. 问题是,一些 HTML 具有不同的格式(并且它们没有我想要的数据). 所以,我试图使用异常处理并将值 null 添加到列表 (我应该这样做,因为数据的顺序很重要.) 例如,我有一个类似的代码: soup = Beauti ..
发布时间:2021-12-17 17:15:12 Python

如何将后台工作线程设置为单线程单元?

我正在创建一个自动化测试运行应用程序.在应用程序的这一部分中,我正在处理轮询服务器.它通过不断轮询网络服务器来确定何时应该运行新的自动化测试(用于我们 GUI 应用程序的夜间自动运行). 当轮询服务器看到请求时,它会下载所有必要的信息,然后在后台工作程序中执行测试运行.问题是测试运行的一部分有 OLE、COM 和其他调用(例如,Clipboard.Clear())发生在后台工作线程中.当发生 ..
发布时间:2021-12-17 17:13:41 C#/.NET