检查时异常和运行时异常区别(java中级)

一、异常的定义:

1.异常:程序在运行过程中发生由于外部问题(如硬件错误、输入错误)等导致的程序异常事件。
(在Java等面向对象的编程语言中)异常本身是一个对象,产生异常就是产生了一个异常对象。
2.异常分支中的Exception可以大致分为RuntimeException(运行时异常)和checked exception(检查时异常)。

二、检查时异常(checked exception):

1.检查时异常,又称为非运行时异常,这样的异常必须在编程时进行处理,否则就会编译不通过。Exception异常类及其子类(除去RuntimeException异常类及其子类)都是检查时异常。

public class Main {
	public static void main(String[] args) {
		Class.forName("a");	//此处为检查时异常,因此改行代码会报错
	}
}

三、运行时异常(RuntimeException):

1.运行时异常,即程序运行时抛出的异常。这种异常在写代码时不进行处理,Java源文件也能编译通过。 RuntimeException异常类及其下面的子类均为运行时异常。

public class Main {
	public static void main(String[] args) {
		System.out.println(1/0);//该行代码逻辑错误,但编译时不会报错
	}
}

上述代码只有在运行时控制台才会给出如下异常信息:
Exception in thread “main” java.lang.ArithmeticException: / by zero
at com.wjm.practice1.Main.main

四、两种异常的区别:

一、定义不同:运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等。检查时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。

二、处理方法不同:运行时异常是不检查异常,程序中可以选择捕获处理,也可以不处理。对于检查时异常,JAVA编译器强制要求用户必需对出现的这些异常进行处理,否则程序就不能编译通过。

三、发生原因不同:运行时异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。面对这种异常不管我们是内否愿意,只能自己去写一大堆catch块去处理可能的异常。

发布了10 篇原创文章 · 获赞 2 · 访问量 168

猜你喜欢

转载自blog.csdn.net/weixin_44785966/article/details/105434218