Questions tagged «exception»

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

8
Debug.Assert与异常抛出
我已经阅读了很多有关如何以及何时使用断言的文章(以及在StackOverflow上发布的其他一些类似问题),并且我对它们很了解。但是,我仍然不明白应该用哪种动机来促使我使用它,Debug.Assert而不是抛出一个明显的例外。我的意思是,在.NET中,对失败的断言的默认响应是“停止运行”并向用户显示消息框。尽管可以修改这种行为,但我发现这样做非常烦人和多余,而我可以抛出一个适当的异常。这样,在抛出异常之前,我可以轻松地将错误写入应用程序日志,此外,我的应用程序不一定会冻结。 那么,为什么我应该使用Debug.Assert而不是普通的例外呢?将断言放置在不应该出现的位置可能会导致各种“有害行为”,因此,根据我的观点,我真的没有通过使用断言而不是抛出异常来获得任何好处。您是否同意我的意见,或者我在这里错过了什么? 注意:我完全理解“理论上”的区别(调试与发行,使用模式等),但是据我所知,我最好抛出一个异常而不是执行一个断言。由于如果在生产版本中发现了错误,我仍然希望“断言”失败(毕竟,“开销”很小),所以我最好抛出一个异常。 编辑:我认为,如果断言失败,则意味着应用程序进入某种损坏的意外状态。那我为什么要继续执行呢?应用程序是在调试版本还是发行版本上运行都没有关系。两者都一样

2
为什么Double.parseDouble(null)和Integer.parseInt(null)抛出不同的异常?
为什么Double.parseDouble(null)和Integer.parseInt(null)抛出不同的异常? 这是历史性事故还是故意的?该文档明确指出了的两种类型的异常Double.parseDouble(...)和的一种类型Integer.parseInt(),但似乎不一致: Integer.parseInt(null); // throws java.lang.NumberFormatException: null 然而 Double.parseDouble(null); // throws java.lang.NullPointerException

13
asp.net mvc间歇性异常:“在控制器XYZ上找不到公共操作方法ABC。”
我收到一个间歇性异常,说asp.net mvc无法找到该操作方法。这是例外: 在控制器“ Schoon.Form.Web.Controllers.ChrisController”上找不到公共操作方法“填充”。 我认为我已经正确设置了路由,因为该应用程序大多数时候都可以工作。这是控制器的动作方法。 [ActionName("Fill")] [AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post), UserIdFilter, DTOFilter] public ActionResult Fill(int userId, int subscriberId, DisplayMode? mode) { //… } 路线: routes.MapRoute( "SchoonForm", "Form/Fill/{subscriberId}", new { controller = "ChrisController", action = "Fill" }, new { subscriberId = @"\d+" } ); 这是堆栈: System.Web.HttpException:在控制器“ Schoon.Form.Web.Controllers.ChrisController”上找不到公共操作方法“ Fill”。在System.Web.Mvc.Controller.ExecuteCore()处位于System.Web.Mvc.Controller.HandleUnknownAction(String actionName)在C:\ dev \ ThirdParty …

24
您更喜欢哪种和为什么使用例外或返回码?
我的问题是,大多数开发人员更喜欢错误处理,异常或错误返回码。请特定于语言(或语言家族),以及为什么您偏爱另一种语言。 我出于好奇而问这个。就我个人而言,我更喜欢错误返回码,因为它们的爆炸性较小,并且如果不想这样做,也不必强迫用户代码支付异常性能损失。 更新:感谢您的所有答案!我必须说,尽管我不喜欢带有异常的代码流的不可预测性。关于返回码(及其兄长句柄)的答案确实给代码增加了很多噪音。

3
如何在Rails中引发异常,使其表现得与其他Rails异常一样?
我想提出一个异常,以使其执行与普通Rails异常相同的操作。特别是,在开发模式下显示异常和堆栈跟踪,并在生产模式下显示“很抱歉,但是出了点问题”页面。 我尝试了以下方法: raise "safety_care group missing!" if group.nil? 但这只是写入"ERROR signing up, group missing!"到development.log文件

12
是什么导致此“ Base-64 char数组的长度无效”
我在这里很少。我无法在本地复制此消息,但是当用户收到错误消息时,我会收到自动的电子邮件异常通知: Invalid length for a Base-64 char array. at System.Convert.FromBase64String(String s) at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) at System.Web.UI.HiddenFieldPageStatePersister.Load() 我倾向于认为分配给viewstate的数据存在问题。 例如: List<int> SelectedActionIDList = GetSelectedActionIDList(); ViewState["_SelectedActionIDList"] = SelectedActionIDList; 如果无法在本地重现错误,则很难猜测错误的来源。 如果有人对此错误有任何经验,我真的很想知道您发现了什么。

11
在Kotlin中测试预期的异常
在Java中,程序员可以为JUnit测试用例指定预期的异常,如下所示: @Test(expected = ArithmeticException.class) public void omg() { int blackHole = 1 / 0; } 我将如何在Kotlin中做到这一点?我尝试了两种语法变体,但没有一个起作用: import org.junit.Test // ... @Test(expected = ArithmeticException) fun omg() Please specify constructor invocation; classifier 'ArithmeticException' does not have a companion object @Test(expected = ArithmeticException.class) fun omg() name expected ^ ^ expected ')'

5
JavaScript异常堆栈跟踪
在Firefox中,我可以使用来获取异常的堆栈跟踪exception.stack。 有没有办法在其他浏览器中得到它? 编辑:我实际上想自动保存堆栈跟踪(如果可能的话),而不是在那时对其进行调试(即,我知道如何在调试器中获取堆栈跟踪)。


15
获取android.content.res.Resources $ NotFoundException:即使资源存在于android中,异常
请让我知道我要去哪里出错了。 我正在创建一个应用程序,该应用程序的活动之一只能在横向模式下进行。所以我在AndroidManifest.xml文件中添加了以下内容 <activity android:name=".LandScapeImageActivity" android:screenOrientation="landscape"></activity> 我已经创建了一个文件夹 / res / layout-land 并在其中添加名为see_today_landscape_layout的布局。 在onCreate()我添加以下内容 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.see_today_landscape_layout); .... } 但是,当我运行我的应用程序时,出现以下错误 02-06 13:46:14.358: E/AndroidRuntime(13286): FATAL EXCEPTION: main 02-06 13:46:14.358: E/AndroidRuntime(13286): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mid.kew.activities/com.mid.kew.activities.LandScapeImageActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f03002b 02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787) 02-06 13:46:14.358: E/AndroidRuntime(13286): at …



8
如果不是,谁在调用Java Thread interrupt()方法?
我已经阅读并重新阅读了Java Concurrency in Practice,已经阅读了有关该主题的多个线程,已经阅读了IBM文章Dealing with InterruptedException,但是我根本不了解某些我认为可以打破的东西。分为两个问题: 如果我从来没有自己打过其他线程,什么会触发InterruptedException? 如果我从不使用自己的interrupt()中断其他线程(例如,因为我正在使用其他方式取消工作线程,例如毒药和while(!cancelled)样式循环[如在JCIP中所述),那那么InterruptedException是什么意思?抓到我该怎么办?关闭我的应用程序?

7
Python:如何知道方法调用可能引发哪些异常
有没有一种方法(在编码时)知道在执行python代码时期望哪些异常?由于我不知道可能抛出哪种异常类型(并且不要告诉我阅读文档,所以很多时候我都会捕获90%的基类Exception。很多时候,可以从深处传播异常。)次文档未更新或不正确)。有某种工具可以检查吗?(例如通过阅读python代码和库)?
87 python  exception 


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.