异常:
程序中发生的不正常的情况成为异常(语法错误和逻辑错误不是异常)。
异常分为两类:
1. Error:java虚拟机无法解决的严重问题,程序会崩溃,如栈溢出(stackoverflowerror)、内存不足等
2. Exception:由于编程错误或外在因素导致的一般性问题,可以使用正对行的代码进行处理,如空指针异常、算数异常。Exception异常也分为两类:
a. 运行时异常:代码运行时发生的异常
b. 编译时异常:编程时发生的异常,编译异常必须处理
异常处理:
当异常发生时,对异常的处理方式,有两种方式:
1. try-catch-finally
程序员在代码中捕获发生的异常,并自行处理
2. throws
将发生的异常抛出,交给调用者(方法)来处理,最顶级的调用者时JVM
try-catch-finally处理方式:
1. 在try中的异常发生了,那么异常发生后面的代码不会被执行,直接进入到catch中
2. 如果异常没有发生,顺序执行try代码块,不会进入catch
3. 如果希望不管是否发生异常,都执行某段代码,则使用finally
4. 可以有多个catch语句,即捕获不同的异常(在不同异常发生时做不同的逻辑),要求catch的子异常在前,父异常在后
throws处理方式:
1. throws是抛出异常,让调用该方法的调用者(方法)处理
2. throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类
3. throws后面可以跟多个异常,用逗号隔开
4. 子类重写父类方法时,对抛出异常的规定:所抛出的异常类型要么和父类抛出异常一致,要么时父类抛出异常类型的子类型
标签:java,抛出,发生,try,catch,异常,throws From: https://www.cnblogs.com/zj-studyrecoding/p/17456608.html