`

Unchecked Exception 和 Checked Exception 比较

    博客分类:
  • java
阅读更多
  Throwable类是所有异常的始祖,它有两个直接子类Error / Exception
  Error仅在Java虚拟机中发生动态连接失败或其它的定位失败的时候抛出一个Error对象。一般程序不用捕捉或抛出Error对象。

Unchecked Exception:
a. 指的是程序的瑕疵或逻辑错误,并且在运行时无法恢复。
b. 包括Error与RuntimeException及其子类,如:OutOfMemoryError, UndeclaredThrowableException, IllegalArgumentException, IllegalMonitorStateException, NullPointerException, IllegalStateException, IndexOutOfBoundsException等。
c. 语法上不需要声明抛出异常。

Checked Exception:
a. 代表程序不能直接控制的无效外界情况(如用户输入,数据库问题,网络异常,文件丢失等)
b. 除了Error和RuntimeException及其子类之外,如:ClassNotFoundException, NamingException, ServletException, SQLException, IOException等。
c. 需要try catch处理或throws声明抛出异常。

有点困惑的是:RuntimeException (Unchecked)是Exception (Checked)的子类。

示例:
public class GenericException extends Exception {
	public GenericException() {
	}

	public GenericException(String message) {
		super(message);
	}
}


public class TestException {
	public void first() throws GenericException {
		throw new GenericException("Generic exception"); // Checked Exception需要显式声明抛出异常或者try catch处理
	}
	
	public void second(String msg) {
		if (msg == null)
			throw new NullPointerException("Msg is null"); // Unchecked Exception语法上不需要处理
	}
	
	public void third() throws GenericException {
		first(); // 调用有Checked Exception抛出的方法也需要try catch或声明抛出异常
	}

	public static void main(String[] args) {
		TestException test = new TestException();
		try {
			test.first();
		} catch (GenericException e) {
			e.printStackTrace();
		}
		
		test.second(null);
	}
}
分享到:
评论

相关推荐

    Checked and Unchecked Exception

    异常分为两种类型:已检查异常(Checked Exception)和未检查异常(Unchecked Exception)。 **已检查异常(Checked Exception)** 已检查异常是那些在编译时需要处理的异常。Java强制程序员要么在方法签名中声明...

    Java中Error与Exception的区别.doc

    在 Java 中,定义了两类异常:Checked exception 和 Unchecked exception。 Checked exception 是 Exception 的子类,它们的异常向上抛出机制进行处理。例如,如果子类可能产生 A 异常,那么在父类中也必须 throws ...

    Java throw Exception实现异常转换

    一、什么是checked exception和unchecked exception? 在Java语言中,异常分为两种:checked exception和unchecked exception。checked exception是编译器强制检查的异常,它们通常是业务逻辑中预期的异常,例如...

    Java常见工具类及异常处理

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

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

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

    exception类处理

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

    基于JAVA语言的异常处理探讨分析 (1).pdf

    JAVA语言的异常可以分为两大类:Checked Exception和Unchecked Exception。Checked Exception是编译器强制捕获的异常,而Unchecked Exception是运行时抛出的异常。常见的Checked Exception包括IOException、...

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

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

    通过实例了解java checked和unchecked异常

    通过实例了解 Java checked 和 unchecked 异常 Java 异常分为两种类型:checked 异常和 unchecked 异常。checked 异常是可以在执行过程中恢复的,例如无效的用户输入、文件不存在、网络或者数据库链接错误等。这些...

    Java常见基础知识总结

    Java基础知识总结 Java是一种广泛使用的编程语言,掌握Java基础知识是每个Java开发者所必需...* Checked Exception和Unchecked Exception的区别 * Throwable类常用方法 * 泛型的应用 * 反射机制 * IO操作 * 注解的应用

    浅谈Java异常.docx

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

    exception 异常处理 exception

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

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

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

    Python中处理unchecked未捕获异常实例

    和Java一样,python也提供了对于checked exception和unchecked exception. 对于checked exception,我们通常使用try except可以显示解决,对于unchecked 异常,其实也是提供回调或者是钩子来帮助我们处理的,我们可以在...

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

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

    Java的checked和unchecked异常

    Java异常分为两种类型,checked异常和unchecked异常,另一种叫法是异常和错误。  简单地讲,checked是可以在执行过程中恢复的,而unchecked异常则是无法处理的错误。  checked异常:  表示无效,不是程序中...

    Java面向对象及异常_附件.pdf

    Java中的异常可以分为两类:Checked Exception和Unchecked Exception。Checked Exception是指编译器可以检查的异常,如IOException、SQLException等。Unchecked Exception是指编译器不能检查的异常,如...

    Error类和Exception类剖析

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

Global site tag (gtag.js) - Google Analytics