当前位置: 首页 > 知识库问答 >
问题:

java - JAVA RuntimeException 异常一定要在源码中有 'throw new xxx' 才会抛出吗?

萧安怡
2023-12-02

JAVA的RuntimeException类型的异常,是不是一定要在“源码”中有 “throw new xxx” 这样的动作才会抛出 ??

共有1个答案

齐夕
2023-12-02

是,但不一定是 java 源码
因为最后运行代码抛出异常的是jvm,一部分异常是 java 代码抛的,还有一部分是 jvm 自己抛的
比如下面代码会抛的异常都不是在 java 代码里写出来的,看源码也看不到抛出异常的具体位置(但是看 java 代码的位置就足够了)

class Scratch {    public static void main(String[] args) {        // test(1, 0);        // test(null);    }    public static int test(int a, int b) {        return a / b;    }    public static String test(Object o) {        return o.toString();    }}
 类似资料:
  • 抛出异常的行为是否可能抛出不同的异常? 为了抛出异常,必须(可选地)分配新对象,并调用其构造函数(隐式调用fillinstacktrace)。在某些情况下,听起来像addSupressed也被称为。那么如果没有足够的内存会发生什么呢?JVM是否需要预分配内置异常?例如,(1/0)会抛出OutOfMemoryError而不是ArithmeticException吗? 此外,构造函数是一个方法调用,因

  • 问题内容: 考虑以下代码: 无需添加方法签名即可编译该代码。(它与同样表现到位,太)。 我理解为什么 可以 安全地运行它,因为实际上不能将其引发在块中,因此不能引发已检查的异常。我有兴趣知道在何处指定此行为。 并非永远都不会达到目标:以下代码也会编译: 但是,如果抛出一个检查的异常,它不会像我期望的那样编译: 在JLS Sec 11.2.2中 ,它说: 一,其抛出的表达式语句(§14.18)具有静

  • 问题内容: 我目前正在使用play2框架。 我有几个正在抛出的类,但是play2s全局处理程序使用throwable而不是异常。 例如我的一门课是抛出一个。我是否可以检查可抛物体(如果是)? 问题答案: 您可以使用它来检查它是否存在。 例: 假设是参考。

  • 问题内容: 我有一个关于Java中重新引发异常的非常简单的问题。 这是代码片段: 为什么我们需要在第一个版本中重新抛出,而第二个版本看起来更优雅?可能有什么好处,并且优先选择哪个版本? 问题答案: 你是对的。第二版更好。而且,第一个版本没有任何意义。除了异常的堆栈跟踪为“错误”之外,它的功能相同。 有“重新抛出”异常的原因如下: 如果您之前有事要做。 如果捕获一种类型的异常并抛出另一种类型的异常:

  • 这是可能的在Java抛出任何异常,即使它是刚刚宣布抛出的时刻,下面的例子: 请分享你对这种方法的好坏的看法。 同样的问题是扩展RuntimeException(这不是抽象的)并立即扔掉它。

  • 我知道您可以使用try-catch块对自定义消息抛出异常,例如: 但是如果我们在实用程序类中有一个方法,例如: 然后我们进入服务类,如下所示: 有没有一种方法可以自定义设置来自实用程序类方法<code>processFiles()</code>的消息及其<code>抛出的IOException</code>,而不是在该方法内部使用try-catch块?