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.如何可能的话,应该在系统级被捕捉
分享到:
相关推荐
1. 可控制性:Exception 可以是可被控制的(checked)或不可控制的(unchecked),而 Error 总是不可控制的(unchecked)。 2. 错误来源:Exception 表示一个由程序员导致的错误,而 Error 经常用来表示系统错误或...
Exception是所有可抛出异常的基类,分为两种主要类型:Checked异常和Unchecked异常。 1. Checked异常(例如IOException、SQLException等)是可控制的,意味着在编译期间必须显式处理这些异常。如果一个方法可能抛出...
Exception类层次则分为两种:checked异常和unchecked异常。 二、checked异常和unchecked异常的区别 checked异常是指编译器可以检查的异常,例如IOException、SQLException等。这些异常是在编译时检查的,如果程序...
Error都是unchecked类型 Exception分为checked 与 unchecked类型 且把异常与错误都当作程序运行不正常的现象来看待 如果区分异常与错误的话: 异常:非致命的。try{}catche(Exception e){} 执行中的try模块是测试...
Java throw Exception实现异常转换是Java语言中的一种异常处理机制,它允许开发者将 checked exception 转换为 unchecked exception,从而使得异常处理变得更加灵活和便捷。本文将详细介绍Java throw Exception实现...
- `Exception`类分为两种类型:受检查的异常(`checked exception`)和不受检查的异常(`unchecked exception`)。受检查的异常(如`IOException`)在编译时必须显式处理或声明,而不受检查的异常(如`...
本资源对Java语言程序设计基础篇的Chapter 17 Exceptions and Assertions进行了详细的解释和知识点总结,涵盖了Java异常类的继承结构、claiming exceptions、checked exception和unchecked exception、throw语句和...
通过合理地划分`CheckedException`和`UncheckedException`,我们可以更好地管理程序的异常情况,提高代码的健壮性和可读性。在实际编程中,应该根据异常的性质和预期的处理方式来选择合适的异常类型,从而确保程序在...
在本文中,我们将详细介绍 Java 异常处理机制,包括 try、catch、finally 块、throws、throw 关键字、Exception 和 Error 类、Checked Exception 和 Unchecked Exception 等概念,并提供了多种异常处理的示例代码,...
【Exception和Error的区别】 在Java编程中,Exception和Error都是基于`Throwable`类的子类,它们构成了Java异常处理机制的基础。理解两者的差异对于编写健壮的代码至关重要。 1. **Exception**: Exception是程序...
Exception又可以分为Checked Exception(受检查异常)和Unchecked Exception(不受检查异常)。Checked Exception即受检查异常,Java代码在编译过程中,如果受检查异常没有被catch或者throws关键字处理的话,就没...
`Exception`又细分为两种类型:可检查(checked)异常和不检查(unchecked)异常。可检查异常需要在编译期间显式处理,例如`IOException`,开发者必须用`try-catch`块或`throws`关键字声明。而不检查异常,如`...
Exception类本身又分为两个子类:Checked Exception和Unchecked Exception。 Checked Exception(检查型异常)是那些在编译时必须被处理的异常,例如IOException、SQLException等。如果方法可能会抛出这些异常,...
- **Checked Exception**:编译器强制要求捕获或声明抛出的异常类型,如 `IOException`。 - **Unchecked Exception**:运行时异常,编译器不会检查,如 `NullPointerException`。 #### 三、自定义异常 自定义...
Exception 又分为两类:CheckedException 和 UncheckedException。 CheckedException 需要用 try...catch... 显示的捕获,而 UncheckedException 不需要捕获。 三、 异常的使用 异常的使用可以分为两类:Checked...
Checked Exception 和 Unchecked Exception 有什么区别? Throwable 类常用方法有哪些? try-catch-finally 如何使用? finally 中的代码一定会执行吗? 如何使用 try-with-resources 代替try-catch-finally? I/O ...
2. **异常的分类**:`Exception`类下有`Checked Exception`和`Unchecked Exception`两种。`Checked Exception`如`IOException`,需要在编译时处理;`Unchecked Exception`如`NullPointerException`,是运行时抛出的...
Java 异常处理机制可以分为两大类:Checked Exception 和 Unchecked Exception。Checked Exception 是在编译期检查的异常,而 Unchecked Exception 是在运行期检查的异常。 在 Java 中,异常对象都是继承自 ...