`
qtlkw
  • 浏览: 307371 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

checked Exception, unchecked Exception and Error

    博客分类:
  • JAVA
阅读更多
1. checked exception
a. 都是Exception的子类,若子类可能抛出X异常,则父类也必须throws X异常,效率低,耦合度高。
b. 需要强制catch,否则编译器直接报错。
/**
 * The class <code>Exception</code> and its subclasses are a form of 
 * <code>Throwable</code> that indicates conditions that a reasonable 
 * application might want to catch.
 *
 * @author  Frank Yellin
 * @version 1.32, 11/17/05
 * @see     java.lang.Error
 * @since   JDK1.0
 */
public class Exception extends Throwable {
    static final long serialVersionUID = -3387516993124229948L;

    /**
     * Constructs a new exception with <code>null</code> as its detail message.
     * The cause is not initialized, and may subsequently be initialized by a
     * call to {@link #initCause}.
     */
    public Exception() {
	super();
    }

    /**
     * Constructs a new exception with the specified detail message.  The
     * cause is not initialized, and may subsequently be initialized by
     * a call to {@link #initCause}.
     *
     * @param   message   the detail message. The detail message is saved for 
     *          later retrieval by the {@link #getMessage()} method.
     */
    public Exception(String message) {
	super(message);
    }

    /**
     * Constructs a new exception with the specified detail message and
     * cause.  <p>Note that the detail message associated with
     * <code>cause</code> is <i>not</i> automatically incorporated in
     * this exception's detail message.
     *
     * @param  message the detail message (which is saved for later retrieval
     *         by the {@link #getMessage()} method).
     * @param  cause the cause (which is saved for later retrieval by the
     *         {@link #getCause()} method).  (A <tt>null</tt> value is
     *         permitted, and indicates that the cause is nonexistent or
     *         unknown.)
     * @since  1.4
     */
    public Exception(String message, Throwable cause) {
        super(message, cause);
    }

    /**
     * Constructs a new exception with the specified cause and a detail
     * message of <tt>(cause==null ? null : cause.toString())</tt> (which
     * typically contains the class and detail message of <tt>cause</tt>).
     * This constructor is useful for exceptions that are little more than
     * wrappers for other throwables (for example, {@link
     * java.security.PrivilegedActionException}).
     *
     * @param  cause the cause (which is saved for later retrieval by the
     *         {@link #getCause()} method).  (A <tt>null</tt> value is
     *         permitted, and indicates that the cause is nonexistent or
     *         unknown.)
     * @since  1.4
     */
    public Exception(Throwable cause) {
        super(cause);
    }
}


2. unchecked exception(RuntimeException继承Exception)
a. 都是RuntimeException的子类。
b. 非必须catch,是无法预料的。比如,list..size(),若list=null, 则会抛出NullPointerException,该异常是一个RuntimeException, 也就是unchecked exception。
public class RuntimeException extends Exception


3. Error
a. 都是Error的子类。
b. 非必须catch,是无法预料的。

Error和Exception都继承自Throwable。不同处:
Exceptions: 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。程序员可以对异常代码进行改正。
1.可以是可控制的(checked)和不可控制的(unchecked)
2.表示一个由程序员导致的错误
3.应该在应用程序级被处理

Errors: 表示恢复不是不可能但很困难,是一种严重问题,比如说内存溢出。
1.总是不可控制的(unchecked)
2.经常用来用于表示系统错误或低层资源的错误
3.如何可能的话,应该在系统级被捕捉
分享到:
评论

相关推荐

    Java中Error与Exception的区别.doc

    1. 可控制性:Exception 可以是可被控制的(checked)或不可控制的(unchecked),而 Error 总是不可控制的(unchecked)。 2. 错误来源:Exception 表示一个由程序员导致的错误,而 Error 经常用来表示系统错误或...

    Error类和Exception类剖析

    Exception是所有可抛出异常的基类,分为两种主要类型:Checked异常和Unchecked异常。 1. Checked异常(例如IOException、SQLException等)是可控制的,意味着在编译期间必须显式处理这些异常。如果一个方法可能抛出...

    详解Java中的checked异常和unchecked异常区别

    Exception类层次则分为两种:checked异常和unchecked异常。 二、checked异常和unchecked异常的区别 checked异常是指编译器可以检查的异常,例如IOException、SQLException等。这些异常是在编译时检查的,如果程序...

    php中error与exception的区别及应用

    Error都是unchecked类型 Exception分为checked 与 unchecked类型 且把异常与错误都当作程序运行不正常的现象来看待 如果区分异常与错误的话: 异常:非致命的。try{}catche(Exception e){} 执行中的try模块是测试...

    Java throw Exception实现异常转换

    Java throw Exception实现异常转换是Java语言中的一种异常处理机制,它允许开发者将 checked exception 转换为 unchecked exception,从而使得异常处理变得更加灵活和便捷。本文将详细介绍Java throw Exception实现...

    Java中Error和Exception的区别.pdf

    - `Exception`类分为两种类型:受检查的异常(`checked exception`)和不受检查的异常(`unchecked exception`)。受检查的异常(如`IOException`)在编译时必须显式处理或声明,而不受检查的异常(如`...

    Java语言程序设计基础篇课后题答案-Chapter17ExceptionsandAssertions.pdf

    本资源对Java语言程序设计基础篇的Chapter 17 Exceptions and Assertions进行了详细的解释和知识点总结,涵盖了Java异常类的继承结构、claiming exceptions、checked exception和unchecked exception、throw语句和...

    浅谈Java异常.docx

    通过合理地划分`CheckedException`和`UncheckedException`,我们可以更好地管理程序的异常情况,提高代码的健壮性和可读性。在实际编程中,应该根据异常的性质和预期的处理方式来选择合适的异常类型,从而确保程序在...

    Java常见工具类及异常处理

    在本文中,我们将详细介绍 Java 异常处理机制,包括 try、catch、finally 块、throws、throw 关键字、Exception 和 Error 类、Checked Exception 和 Unchecked Exception 等概念,并提供了多种异常处理的示例代码,...

    第2讲 Exception和Error有什么区别1

    【Exception和Error的区别】 在Java编程中,Exception和Error都是基于`Throwable`类的子类,它们构成了Java异常处理机制的基础。理解两者的差异对于编写健壮的代码至关重要。 1. **Exception**: Exception是程序...

    Java常见基础知识总结

    Exception又可以分为Checked Exception(受检查异常)和Unchecked Exception(不受检查异常)。Checked Exception即受检查异常,Java代码在编译过程中,如果受检查异常没有被catch或者throws关键字处理的话,就没...

    2Exception和Error有什么区别1

    `Exception`又细分为两种类型:可检查(checked)异常和不检查(unchecked)异常。可检查异常需要在编译期间显式处理,例如`IOException`,开发者必须用`try-catch`块或`throws`关键字声明。而不检查异常,如`...

    exception类处理

    Exception类本身又分为两个子类:Checked Exception和Unchecked Exception。 Checked Exception(检查型异常)是那些在编译时必须被处理的异常,例如IOException、SQLException等。如果方法可能会抛出这些异常,...

    exception 异常处理 exception

    - **Checked Exception**:编译器强制要求捕获或声明抛出的异常类型,如 `IOException`。 - **Unchecked Exception**:运行时异常,编译器不会检查,如 `NullPointerException`。 #### 三、自定义异常 自定义...

    java异常(Exception)处理机制详解

    Exception 又分为两类:CheckedException 和 UncheckedException。 CheckedException 需要用 try...catch... 显示的捕获,而 UncheckedException 不需要捕获。 三、 异常的使用 异常的使用可以分为两类:Checked...

    java 面试常见问题整理

    Checked Exception 和 Unchecked Exception 有什么区别? Throwable 类常用方法有哪些? try-catch-finally 如何使用? finally 中的代码一定会执行吗? 如何使用 try-with-resources 代替try-catch-finally? I/O ...

    Exception

    2. **异常的分类**:`Exception`类下有`Checked Exception`和`Unchecked Exception`两种。`Checked Exception`如`IOException`,需要在编译时处理;`Unchecked Exception`如`NullPointerException`,是运行时抛出的...

    Java异常处理机制及其在项目中的应用.pdf

    Java 异常处理机制可以分为两大类:Checked Exception 和 Unchecked Exception。Checked Exception 是在编译期检查的异常,而 Unchecked Exception 是在运行期检查的异常。 在 Java 中,异常对象都是继承自 ...

Global site tag (gtag.js) - Google Analytics