异常处理:
什么是异常?
异常是一种可以中断程序执行的指令流。一旦异常出现,如果我们不进行处理,则会让我们的程序非法中断。
Java中所有的异常都是以类和对象的形式出现的。
Java中已经给我们封装好了很多的异常类。
在java中异常一旦出现并且没有人处理的时候,程序会直接终止。
在程序中如何使用异常处理:
语法:
try{
可能会出现异常的语句
}catch(可能会产生的异常类型1 对象名称1){
当异常类型1产生之后,需要处理的代码。
}catch(可能会产生的异常类型2 对象名称2){
当异常类型2产生之后,需要处理的代码。
}...
catch(可能会产生的异常类型n 对象名称n){
当异常类型n产生之后,需要处理的代码。
}【
finally{
无论是否发生异常,都会被执行的代码
}
】
执行流程:
程序首先会执行try语句块中的代码,如果try语句块中的代码没有异常产生,则直接跳到整个try-catch的后面执行,此时需要看是否存在finally语句,如果finally语句存在则会执行finally语句中的代码程序继续从try-catch语句后面的代码继续执行,如果finally语句不存在则从try-catch语句后面的代码继续执行。
如果try语句中有异常产生,java会自动产生一个异常的对象,与catch语句中的异常对象进行匹配,如果匹配则执行catch语句块中的代码,如果都不匹配则看是否存在finally,如果finally存在则执行finally中的代码,然后从try-catch语句之后继续执行,如果finally不存在则直接从try-catch语句块之后继续执行。
finally
语句块中的内容,无论程序是否产生异常,finally语句块中的代码始终会被执行
我们的try-catch-finally语句块中,可以不写catch语句块,但是不写catch语句块的时候必须写finally语句块。
Throwable
是所有异常类和所有错误的父类。
对于异常而言,我们程序员可以使用try-catch-fially进行捕获进行处理,但是对于所有的错误,程序员处理不了。
我们在同时捕获多个异常的时候,捕获范围小的要写在捕获方位大的前面。
throws与throw关键字
throws:
throws关键字可以用来修饰方法,使用throws关键字修饰的方法,表示此方法不会处理任何的异常,会将所有的异常交给方法的调用处进行处理。
throw:
代表手动抛出异常,一般使用throw关键字都是抛出一个异常对象。
Exception与RuntimeException的区别:
RuntimeException:
叫做运行时异常,运行时异常是指,在JVM运行的时候可能会出现的异常。如果出现,则会让JVM停止。
Exception:
所有异常的父类,Exception代表的是必须被处理的异常。
包以及访问权限
包:
作用:
用来管理我们的程序,避免类型相同造成的问题。
java中一个类的完整的名称是:包.类
包的命名原则:
只能由小写的英文字母组成和数字组成
一般来讲包名都是域名倒写的形式。【com.oracle.tools】
如何创建包:
新建-->package-->输入包名
导包语句一定要写在声明包的后面声明类的前面
访问权限:
java中的访问权限有4种:
1.public
2.protected
3.default
4.private
注意:
default访问权限,不需要明确的写出来,如果在需要写访问权限的位置,什么都不写就是默认的访问权限default
private:
只有在本类中可以访问,出了当前这个类的范围就不能被访问。
default:
可以在本类中访问,可以在同一个包中的类去访问,同一个包中的子类可以访问。不同包中的类不能访问,不同包中的子类也不能访问。
protected:
本类可以访问,同一个包中的类可以访问,同一个包中的子类可以访问,不同包中的类不能访问,不同包中的子类不能访问
public:
在任意的位置都能访问。