exception-handling相关内容

检查是否为空是一种好的做法还是坏的做法?

我见过这样的代码,其中几乎所有应用层中的每个变量都被检查为不是null。我也看到过几乎没有这个的代码。 if(object != null){} 检查变量是否为空的最佳实践是什么?得到NullPointerException真的是一件坏事吗?这一切null检查是否可能是您的应用程序运行状况不佳的症状? 推荐答案 最好显式检查是否为空,因为: 您可以更早地捕获错误。 您 ..
发布时间:2022-07-15 09:06:14 Java开发

拦截器抛出的异常不会转到异常处理程序。

今天我遇到了一个问题。我有一个拦截器,它开始并提交Hibernate事务,它可能在提交时抛出异常(例如org.hibernate.StaleObjectStateException)。也就是说,它可以抛出异常,但异常不会到达处理程序。我以为我的代码有问题。但后来我写了一个简单的测试,结果是 struts.xml中的包定义: ..
发布时间:2022-04-16 16:03:01 Java开发

ASP.NET Web API 2:ExceptionLogger和异常处理程序

我正在尝试在web API中实现全局异常日志记录,并使用该错误ID向用户发送一条友好的消息,这样他就可以带着错误ID返回给我们,这样我们就可以修复它。我两个都在实现: System.Web.Http.ExceptionHandling.ExceptionLogger System.Web.Http.ExceptionHandling.ExceptionHandler 下面是覆盖Exc ..
发布时间:2022-02-28 12:53:37 C#/.NET

捕获运行在 Android 上的本机代码引发的异常

我目前正在进行的项目需要我编写跨平台程序实现的 android 部分. 通过 android-ndk 构建了一组核心功能并将其包含在我的应用程序中.我发现本机代码中发生的任何异常/崩溃充其量只会不时报告.发生错误时,我会出现以下行为之一: 发生堆栈跟踪/内存转储并写入日志文件.程序消失(设备上没有给出关于为什么应用程序突然不再存在的指示). 没有任何堆栈跟踪/转储或其他迹象表明本机代 ..

异常,以及在连接重置时如何最好地重试?

我有一些代码连接到 URL 以下载文件,然后对其执行一些处理.但是,有时我会收到错误 java.net.SocketException: Connection reset. 当我收到此错误时,我想重试下载文件,最多说 3 次,然后再放弃.我想知道构建它的最佳方法是什么. 以下是否正常.将 try-catch 块放在 while 循环内似乎可以接受,还是有更好的方法? 非常感谢所有 ..
发布时间:2022-01-24 15:28:56 Java开发

零成本异常处理 vs setjmp/longjmp

假设与设置恢复点相关的成本,可以像这样优化循环: while (doContinue) {尝试 {做一些工作 ();}抓住 (...) {}} 变成这样: while (doContinue) {尝试 {做 {做一些工作 ();} while (doContinue);休息;} 抓住 (...) {}} 但是如果平台支持零成本的异常处理,这种优化就没有任何意义了. 有人能指出如何在不 ..
发布时间:2022-01-23 21:00:33 C/C++开发

禁用 C++ 异常,如何使任何 std:: throw() 立即终止?

这个 C++ 程序是一个 CGI 脚本,我不想处理异常.我宁愿获得边际性能提升,并让操作系统(Linux)在进程终止后处理清理. 我正在使用标准 C++ 库,并且希望任何函数die 就像在 Perl 中一样:只要它抛出异常. 不展开,或运行任何进一步的代码在我的过程中. -fno-exceptions 是如何工作的?如果我的代码中根本没有捕获,并且基本上假装不存在异常.但我确实使用可以 ..
发布时间:2022-01-23 20:45:51 C/C++开发

c#中递归泛型类型的问题

我有一些 C# 代码在 mono 和 Microsoft 的 .net 编译器下都能正常编译,但只能在 mono 上运行.错误信息是(我添加的换行符) 未处理的异常:System.TypeLoadException:无法加载类型“Hasse.Groups.Heavy.Product.PowerGroup`1"来自程序集“Hasse,版本=1.0.x.y,文化=中性,PublicKeyToken= ..
发布时间:2022-01-23 15:24:05 C#/.NET

使用 JavaMail API 发送邮件失败

我有以下代码试图在后台发送电子邮件.我已经使用 textview 来查看异常.但是,虽然 textview 中没有显示任何内容,但我也无法收到邮件.所以我不确定邮件是否已成功发送.谁能帮帮我? 根据建议,我将程序修改如下: 新的 Sender.java public class Sender extends Activity {按钮发送;TextView 文本;@覆盖公共无效 onC ..
发布时间:2022-01-23 13:02:59 移动开发

C 中的异常处理 - setjmp() 返回 0 有什么用?

我有几个关于 setjmp/longjmp 使用的问题 - setjmp(jmp___buf stackVariables)返回0有什么用.这是默认值,我们无法影响. setjmp(stackVariables)的唯一意义就是在stackVariables中压栈.基本上 0 告诉我们堆栈是否成功推送到 stack_variables 上. 当您从 longjmp 返回时,它们是非 ..
发布时间:2022-01-22 12:52:01 其他开发

如何从 obj-c/ios 中的堆栈跟踪中获取源代码行

我使用 NSSetUncaughtExceptionHandler 将堆栈跟踪打印到 iPhone 的本地文件中,该文件将在应用程序下次启动时发送到我们的服务器.然后我可以检查异常数据并修复错误.在某些崩溃中,我有模块名称和引发异常的函数,这些都很容易.但主要是我有这样的东西: "4 libc++abi.dylib 0x35bba3c5 _ZL19safe_handler_callerPFvvE ..
发布时间:2022-01-22 12:50:09 移动开发

`try/catch` 是如何工作的

我想了解 try {} catch {} 块和堆栈跟踪的工作原理. 我正在阅读 这篇关于异常处理的好文章模式 并找到以下段落: catch (NoSuchMethodException e) {throw new MyServiceException("废话:" +e.getMessage());} 这会破坏原始异常的堆栈跟踪,并且总是错误的. 在那之后我意识到我并不真的知道 tr ..
发布时间:2022-01-22 12:18:04 Java开发