Questions tagged «exception-handling»

异常是一种异常情况,需要偏离程序的正常流程。通常,异常不应导致完全失败,而应由异常处理程序来处理。异常处理是许多编程语言中的内置构造。通常,通过展开堆栈来处理异常,从而回滚到异常范围之外的已定义状态,然后调用处理程序块或例程。


5
VS2010在Windows 64位版本的WinForms应用程序中不会显示未处理的异常消息
创建新项目时,未处理的异常会产生奇怪的行为。这是我可以重现此问题的方法: 1)创建一个新的Windows窗体应用程序(C#、. NET Framework 4,VS2010) 2)将以下代码添加到Form1_Load处理程序中: int vara = 5, varb = 0; int varc = vara / varb; int vard = 7; 我希望VS中断并在第二行显示未处理的异常消息。但是,发生的情况是,仅跳过了第三行而没有任何消息,并且应用程序继续运行。 我现有的C#项目没有这个问题。所以我想我的新项目是用一些奇怪的默认设置创建的。 有谁知道我的项目有什么问题吗??? 我尝试选中“调试”->“异常”中的复选框。但是,即使我在一个try-catch块中处理异常,执行也会中断;这也不是我想要的。如果我没记错的话,此对话框中有一列“未处理的异常”或类似的内容,它们可以满足我的要求。但是在我的项目中,只有一列(“ Thrown”)。

10
抛出或尝试接球
决定是在方法中添加throws子句还是使用try-catch?的一般经验法则是什么? 根据我自己的了解,throws当调用方破坏了合同的末端(传递的对象)时,try-catch应使用;当在方法内部执行的操作期间发生异常时,应使用。它是否正确?如果是这样,应该在呼叫方执行什么操作? PS:通过Google和SO搜索,但希望对此有一个明确的答案。



8
什么是抑制异常?
注释(用户SOC上的)回答到关于尾调用优化的问题提到了Java 7中有一个称呼,是因为“加ARM的”的“抑制异常”,新的功能(适用于ARM CPU的支持?)。 在这种情况下,什么是“受抑制的例外”?在其他情况下,“被抑制的异常”将是被捕获然后被忽略的异常(这是一个好主意)。这显然是不同的。


5
在PHP Try Catch块中引发异常
我在Drupal 6 .module文件中有一个PHP函数。我试图在执行更复杂的任务(例如数据库查询)之前运行初始变量验证。在C#中,我曾经在Try块的开头实现IF语句,如果验证失败,该语句将引发新的异常。抛出的异常将在Catch块中捕获。以下是我的PHP代码: function _modulename_getData($field, $table) { try { if (empty($field)) { throw new Exception("The field is undefined."); } // rest of code here... } catch (Exception $e) { throw $e->getMessage(); } } 但是,当我尝试运行代码时,它告诉我只能在Catch块内抛出对象。 提前致谢!

11
多次尝试捕获还是一次?
通常,我会这样做: try { code code that might throw an anticipated exception you want to handle code code that might throw an anticipated exception you want to handle code } catch { } 这样做有什么好处吗? code try { code that might throw an anticipated exception you want to handle } catch { …

9
.NET-实现“捕获所有异常处理程序”的最佳方法是什么
我想知道最好的方法是“如果所有其他方法都失败了,那就赶上它”。 我的意思是,您正在处理应用程序中尽可能多的异常,但是仍然有一定的错误,因此我需要拥有一些可以捕获所有未处理的异常的东西,以便我可以收集信息并将其存储在数据库中或提交它们到网络服务。 AppDomain.CurrentDomain.UnhandledException事件是否捕获所有内容?即使应用程序是多线程的? 旁注:Windows Vista公开了本机API函数,允许任何应用程序在崩溃后恢复自身...现在想不起来的名称...,但我宁愿不使用它,因为许多用户仍在使用Windows XP。


12
VBA错误处理的好模式
在VBA中有哪些好的错误处理模式? 特别是在这种情况下,我该怎么办: ... some code ... ... some code where an error might occur ... ... some code ... ... some other code where a different error might occur ... ... some other code ... ... some code that must always be run (like a finally block) ... 我要处理这两个错误,并在可能发生错误的代码之后恢复执行。同样,无论最后抛出什么异常,都必须始终运行最后的最终代码。我怎样才能达到这个结果?

4
在try catch / finally语句中finally的意义是什么
多年来,我已经在多种语言中使用了try-catch / except-finally变体,今天有人问我,最后的意义是什么,我无法回答。 基本上,您为什么要在最后放入一条语句,而不是只在整个try-catch块之后放一条语句?换句话说,以下代码块之间是有区别的: try{ //a} catch {//b} finally {//c} try{//a} catch{//b} //c 编辑:人们 ,我知道最终会做些什么,我已经使用了很长时间了,但是我的问题是在上面的示例中,插入//c最后似乎是多余的,不是吗?


3
如何重写$ exceptionHandler实现
每当抛出javascript异常时,我们还想做一些额外的事情。 从以下文档$exceptionHandler: 角度表达式中任何未捕获的异常都委托给此服务。默认实现只是将$ log.error委托给浏览器控制台。 它说“默认实现”的事实使我认为有一种方法可以为服务提供我们自己的实现,并在引发异常时做我们想要的事情。我的问题是,你如何做到这一点?我们如何使所有异常都保留给该服务,然后提供我们希望发生的功能?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.