# 一、异常分类

  • 错误
  • 运行时异常
  • 检查性异常

# 1、错误

错误不是异常,错误脱离程序员的控制,是Java 运行时系统的内部错误或者资源耗尽产生的错误,应用程序不会抛出该异常,在代码中通常会被忽略。比如:栈溢出,就会产生错误。

# 2、检查异常

一般都是外部错误,这种异常发生在编译阶段,java 编译器会强制程序去捕获此类异常,比如:文件不存在之类的异常,针对这些异常就需要使用 try...catch 去处理

# 3、运行时异常

运行时异常是可以被程序员规避的异常,和检查时异常不同,运行时异常在编译时会被忽略。

# 二、异常相关

# 三、 Throw 和 throws 的区别

# Throw 和 throws 使用代码

## throws 使用
public static void openFile() throws ClassNotFoundException {
	Class.forName("");
}

## throw 使用
public static void divid(int a){
	if(a==0){
		throw new RuntimeException();
	}
}

# 区别

  • 书写位置的区别

    throws 写在函数上,后面跟着异常类,可以多个。
    
    Throw 在函数内,后面跟着异常对象,有且仅有一个。
    
  • 功能不同

    throws 用来声明异常,让调用者知道该功能可能出现问题,可以预先给出处理方式
    throws 表示出现异常的一种可能性,并不一定会发生
    
    Throw 抛出具体的问题对象,执行到 throw ,功能就已经结束了。
    Throw 则是抛出异常,执行 throw 一定跑出了某种异常对象
    

# 共同点

两种都是消极处理异常的方式,只是抛出或者可能抛出异常,函数本身不进行异常处理,而是直接将异常抛给调用者,让调用者自己去处理。

最近更新时间: 7/12/2020, 9:24:26 PM