`
darrenzhu
  • 浏览: 807366 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

运行时异常(RuntimeException)和受检查异常(Checked Exception)的本质区别

    博客分类:
  • Java
阅读更多
最本质的区别是RuntimeException是运行时才会发生的异常, 而受检查异常是编译时异常,编译器会分析哪些异常会在执行一个方法或者构造函数的时候抛出。


异常(Exception):你可以使用运行时异常或者编译时异常。
运行时异常(RuntimeException)也称作未检测的异常(unchecked exception),这表示这种异常不需要编译器来检测。RuntimeException是所有可以在运行时抛出的异常的父类。一个方法除要捕获异常外,如果它执行的时候可能会抛出RuntimeException的子类,那么它就不需要用throw语句来声明抛出的异常。

例如:NullPointerException,ArrayIndexOutOfBoundsException,等等

受检查异常(checked exception)都是编译器在编译时进行校验的,通过throws语句或者try{}cathch{} 语句块来处理检测异常。编译器会分析哪些异常会在执行一个方法或者构造函数的时候抛出。
分享到:
评论

相关推荐

    Java语言中的两种异常

    从逻辑角度分析,`CheckedException`和`RuntimeException`的设计理念和应用场景存在本质差异。 **1. CheckedException的应用场景** `CheckedException`主要用于表示程序可以预见且能够处理的异常情况,比如I/O操作...

    全面掌握Java的异常处理机制 .doc

    - **检查异常**(Checked Exception):必须被捕获或声明抛出。如 `IOException`、`SQLException`。 - **运行时异常**(Unchecked Exception):继承自 `RuntimeException` 的异常,如 `NullPointerException`、`...

    为媳妇儿整理的JAVA面试题.pdf

    Java中的异常分为运行时异常(RuntimeException)和非运行时异常(Checked Exception)。运行时异常是程序逻辑错误,编译器不要求强制捕获;非运行时异常在编译期间需要显式处理。Servlet的异常处理也是面试中常问的...

    Java 异常详解

    `RuntimeException`及其子类,如`NullPointerException`、`ArithmeticException`,都属于运行时异常。运行时异常通常表示程序员的逻辑错误,应当尽可能避免。 三、异常的处理机制 Java提供了五种关键字来管理异常...

    Java-CustomExceptions:Java 自定义异常

    通常,我们会提供一些构造函数,以便在抛出异常时传递错误信息或原始异常。 ### 二、何时使用自定义异常 1. **特定业务逻辑**:当遇到特定于应用领域的错误情况时,自定义异常可以帮助提供更清晰的错误信息。 2. *...

    Java笔试题Java笔试题

    Java中的异常处理机制包括检查性异常(Checked Exception)和运行时异常(RuntimeException)。检查性异常必须被捕获或声明抛出,而运行时异常则可以在不被捕获的情况下抛出。合理地使用异常处理可以增强程序的健壮...

    java面试必备宝典

    - 一般异常(Checked Exception)需要显式捕获和处理,否则编译不通过。 6. **Servlet的生命周期**: - 初始化(init):Servlet加载并初始化,只执行一次。 - 服务(service):接收请求,根据请求类型调用...

    没弄懂这些Java基础,简历上千万别写熟悉:异常+反射+注解+泛型

    `Exception` 类又可以进一步细分为 `RuntimeException` 和 `CheckedException`。 - **RuntimeException**: 这类异常通常是由于程序逻辑错误导致的,例如空指针异常 (`NullPointerException`) 或数组越界异常 (`...

    java面试之吸星大法

    而`Exception`表示程序可以尝试恢复的异常状况,分为`checked`和`unchecked`两种,前者必须在编译时处理,后者(如`RuntimeException`)可以在运行时直接抛出。 #### final关键字的意义 在Java中,`final`关键字...

    java面试题

    - **运行时异常**(RuntimeException)是程序逻辑错误,不强制捕获,如`NullPointerException`。 - **一般异常**(Checked Exception)如`IOException`,编译器要求必须捕获或声明抛出。 6. **Servlet的生命周期*...

    Java基础(韩顺平版)笔记详

    - Java中的异常分为两大类:运行时异常(RuntimeException)和检查性异常(Checked Exception)。 - **异常处理** - try-catch语句用于捕获异常并处理。 - finally块用于执行必要的清理工作。 - throw语句用于...

    JAVA面向对象

    Java中的异常分为两大类:**运行时异常**(RuntimeException)和**检查型异常**(Checked Exception)。运行时异常通常由编程错误引起,不需要显式捕获或声明抛出;而检查型异常则必须被捕获或声明抛出。 #### 六、...

    IT java 面试题库

    - `Exception`是所有异常类的超类,分为检查异常(`Checked Exception`)和运行时异常(`Runtime Exception`)。 - `RuntimeException`是运行时异常的基类,不需要显式处理或声明。 - 最常见的`RuntimeException`包括...

    JAVA程序员面试32问

    - **Exception**:表示合理条件下可以捕获并处理的异常,分为`RuntimeException`(运行时异常)和`CheckedException`(检查型异常)两大类。 #### 第十九,List, Set, Map 是否继承自 Collection 接口? - `List`...

    SCJP必掌握的英语词汇

    **不管**表示不受某些条件的影响。在编程中,这可能涉及编写能够处理各种情况的健壮代码。 #### 可变形参列表 (Variable Argument Lists) **可变形参列表**是指方法接受可变数量的参数。在Java中,使用“…”来...

Global site tag (gtag.js) - Google Analytics