Questions tagged «exception»

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

16
英文异常消息?
我们通过将Exception.Message写入文件来记录系统中发生的所有异常。但是,它们是按照客户的文化来编写的。土耳其语的错误对我来说意义不大。 那么,如何在不改变用户文化的情况下用英语记录错误消息呢?

8
如何用Java定义自定义异常类的最简单方法?
我正在尝试以最简单的方式定义自己的异常类,这就是我得到的: public class MyException extends Exception {} public class Foo { public bar() throws MyException { throw new MyException("try again please"); } } 这就是Java编译器所说的: cannot find symbol: constructor MyException(java.lang.String) 我有一种感觉,该构造函数必须从继承java.lang.Exception,不是吗?


8
ASP.NET Core Web API异常处理
在使用常规ASP.NET Web API多年之后,我将ASP.NET Core用于新的REST API项目。我看不到任何在ASP.NET Core Web API中处理异常的好方法。我试图实现异常处理过滤器/属性: public class ErrorHandlingFilter : ExceptionFilterAttribute { public override void OnException(ExceptionContext context) { HandleExceptionAsync(context); context.ExceptionHandled = true; } private static void HandleExceptionAsync(ExceptionContext context) { var exception = context.Exception; if (exception is MyNotFoundException) SetExceptionResult(context, exception, HttpStatusCode.NotFound); else if (exception is MyUnauthorizedException) SetExceptionResult(context, exception, HttpStatusCode.Unauthorized); …

2
slf4j:如何记录格式化的消息,对象数组,异常
记录填充的消息和异常的堆栈跟踪的正确方法是什么? logger.error( "\ncontext info one two three: {} {} {}\n", new Object[] {"1", "2", "3"}, new Exception("something went wrong")); 我想产生类似于以下的输出: context info one two three: 1 2 3 java.lang.Exception: something went wrong stacktrace 0 stacktrace 1 stacktrace ... slf4j版本1.6.1
274 java  exception  logging  slf4j 




16
从析构函数中抛出异常
大多数人说,永远不要从析构函数中抛出异常-这样做会导致未定义的行为。Stroustrup指出:“向量析构函数显式地为每个元素调用析构函数。这意味着,如果抛出一个元素析构函数,则向量破坏会失败...实际上,没有很好的方法来防止从析构函数引发的异常,因此该库不保证元素析构函数抛出异常”(来自附录E3.2)。 本文似乎另有说法-抛出析构函数或多或少是可以的。 所以我的问题是-如果从析构函数中抛出导致未定义的行为,那么如何处理析构函数期间发生的错误? 如果在清理操作期间发生错误,您是否会忽略它?如果是可以在堆栈中潜在地处理但在析构函数中无法正确处理的错误,那么将异常抛出到析构函数之外是否有意义? 显然,这类错误很少见,但可能出现。

6
抛出异常的哪一部分是昂贵的?
在Java中,当实际上没有错误时使用throw / catch作为逻辑的一部分通常是一个坏主意(部分),因为抛出和捕获异常的代价很高,而且在循环中多次执行通常比其他方法慢得多不涉及引发异常的控制结构。 我的问题是,是在throw / catch本身中还是在创建Exception对象时(因为它获得了大量的运行时信息,包括执行堆栈)而产生的成本? 换句话说,如果我这样做 Exception e = new Exception(); 但是不要扔,是扔的大部分费用,还是扔+渔获物处理的成本很高? 我不是在问是否将代码放在try / catch块中会增加执行该代码的成本,我是在问捕获Exception是昂贵的部分,还是创建(调用构造函数)Exception是昂贵的部分。 提出此问题的另一种方法是,如果我创建了一个Exception实例并一遍又一遍地抛出并捕获,那么这将比每次抛出新的Exception都快得多吗?

20
异常后如何重试?
我有一个以开头的循环for i in range(0, 100)。正常情况下,它可以正常运行,但有时由于网络条件而失败。目前,我已对其进行了设置,以便在失败时,它将continue在except子句中(继续到的下一个数字i)。 我是否可以将相同的数字重新分配给i循环并再次执行失败的循环?


9
检测到堆栈粉碎
我正在执行我的a.out文件。执行后,程序将运行一段时间,然后退出并显示以下消息: **** stack smashing detected ***: ./a.out terminated* *======= Backtrace: =========* */lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x48)Aborted* 可能是什么原因造成的,我该如何纠正?
246 c  exception  stack 

7
如何使用Assert.Throws声明异常的类型?
我如何使用Assert.Throws断言的类型和实际的消息措辞。 像这样: Assert.Throws<Exception>( ()=>user.MakeUserActive()).WithMessage("Actual exception message") 我正在测试的方法会抛出具有不同消息的相同类型的多个消息,并且我需要一种方法来测试是否根据上下文抛出正确的消息。

15
C ++捕获所有异常
是否有Java的C ++等价物 try { ... } catch (Throwable t) { ... } 我正在尝试调试调用本机Windows函数的Java / jni代码,并且虚拟机不断崩溃。本机代码在单元测试中看起来不错,并且仅在通过jni调用时似乎崩溃。通用的异常捕获机制将被证明非常有用。
242 c++  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.