jjzjj

Throwable

全部标签

c# - C# 中的(普通)throw 语句会导致异常吗?

问题:C#中的普通throw语句本身是否会导致新的异常?请注意,我问这个问题是出于好奇,而不是因为我有任何实际或现实世界的情况会很重要。另请注意,我的直觉和经验告诉我答案是“否”,但我希望以某种方式验证该答案(请参阅到目前为止我尝试过的资源)。下面是一些示例代码来说明我的问题:try{intx=0,y=1/x;}catch(ExceptionouterException){try{throw;}catch(ExceptioninnerException){//Q:DoesthisAsserteverfail??System.Diagnostics.Debug.Assert(outerE

php - 为什么 Exception 不是 Throwable 的实例?

我认为在所有编程语言中,Exception类都是Throwable接口(interface)的实例。看看下面的代码,它显示Exception不是php中Throwable的实例。try{thrownewInvalidArgumentException("errormessage");}catch(InvalidArgumentException$e){if($einstanceofException){echo'$eisexception';//thislinegetsexecuted}if($einstanceofThrowable){echo'$eisthrowable';//bu

java - 我需要一位专家让我了解 Java Throwable 的 addSuppressed 的作用?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:JDK1.7Throwable`addSuppressed()`method所以Java在Throwable中有一个方法publicfinalvoidaddSuppressed(Throwableexception)这就是它的作用:Appendsthespecifiedexceptiontotheexceptionsthatweresuppressedinordertodeliverthisexception.Thismethodisthread-safeandtypicallycalled(automati

java - 异常的内存分配

您能解释一下,Exception实例或其子实例在内存中的分配位置吗?是堆还是栈,还是别的?谢谢! 最佳答案 对于大多数JVM来说,所有的Object都是在堆上创建的,Exception也不异常(exception)。;)JVM可以使用EscapeAnalysis在堆栈上分配对象,但这通常仅限于仅在一种方法中使用且不返回的对象。也就是说,Exceptions不太可能是一个好的候选者。在许多JVM上创建Throwables(包括Exception)的方式的一个特别之处在于,直到需要它们时才会创建堆栈跟踪元素。这是因为大多数时候不需要它们

java - 为什么 Java 在 Exception/Throwable 类中没有 setMessage?

我无法理解为什么Java不允许在异常类型(或其父类(superclass)Throwable)创建后更改异常消息。它允许使用setStackTrace更改stackTrace而不是消息。我的用例对我来说似乎是真实的,希望有一些替代方案。用例我有一个Controller服务X,它调用比方说10个其他依赖服务。为了简化调试,如果依赖服务抛出一些异常,我们希望从服务X到其上游显示一些标识符,以便轻松识别失败的请求。为此,我们有为每个依赖项创建和设置的requestId。现在,为了避免所有依赖服务之间的重复并简化代码,我们可以创建一个通用拦截器,让我们能够在每次调用之前和之后做一些工作。有点像

java - 为什么我可以在 Scala 中定义通用异常类型?

在Java中,定义通用异常类是非法的。编译器将拒绝编译以下内容:publicclassFooextendsThrowable{//whatever...}但是,这段Scala代码编译得很好:classFoo[T](valfoo:T)extendsThrowable更奇怪的是,只要我捕获原始Foo类型,我就可以在Java代码中使用这个Scala类:publicclassMain{publicstaticvoidmain(String[]args){try{thrownewFoo("test");}catch(Fooe){System.out.println(e.foo());}}}这会编

java - 为什么Exception将Throwable作为构造函数参数而不是Exception?

我最近注意到Exception有几个构造函数将Throwable作为参数。Throwable有两个子类,Error和Exception,通常所有文档都指示您不应trycatch或处理Error。因此,我很好奇为什么Exception将Throwable作为构造函数参数而不是Exception。这意味着Exception可以用Error作为其原因创建,并且可以由应用程序处理。为什么会这样?自定义Exception类是否应该只提供以Exception为参数的构造函数? 最佳答案 我想这主要是因为:不建议处理错误,但不禁止。无论如何,对接

Java 泛型 : creating collections of class objects extending Throwable

为什么第一行可以,第二行不行?Collection>exs=newArrayList>(){{add(MyOwnException.class);}};Collection>exs=Arrays.asList(MyOwnException.class); 最佳答案 错误的原因是java推断出错误的类型,但您可以通过在调用类型化方法时指定类型来使其编译,无需强制转换Arrays.asList():Collection>exs=Arrays.>asList(Exception.class);//compiles在不指定类型的情况下,ja

java - 让java编译器输出类型推断信息

是否有可能让javac输出有关它为方法调用推断的类型的信息?例如,我想知道在bar的invocation中,对于形式类型T的推断是什么。privatestaticvoidbar(){...}publicvoidfoo(){bar();}我正在探索javac-Xprint和friend,但找不到任何公开这种细节的东西。编辑示例。我最初不想提出这个问题,因为它会使答案复杂化。我主要对从javac中获取调试信息感兴趣。无论如何,这是一个激励人心的例子:publicclassScratch{privatestaticvoidsneakyThrow(Throwablet)throwsT{thro

java - 使泛型类的内部类扩展 Throwable

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whydoesn’tJavaallowgenericsubclassesofThrowable?我正在尝试在这样的泛型类中创建一个常规的RuntimeException:publicclassSomeGenericClass{publicclassSomeInternalExceptionextendsRuntimeException{[...]}[...]}这段代码让我在RuntimeException这个词上出错说ThegenericclassSomeGenericClass.SomeInternalEx