JAVA笔记(十)-----异常
异常:就是程序运行时出现的不正常情况
异常的体系
Throwable
|--Error
|--Exception
1.Error
①通常出现重大问题如运行的类不存在或者内存溢出等。
②不编写针对性代码对其处理
2.Exception
①在运行时运行出现的一些情况,可以通过try catch finally进行处理
Exception和Error都是以父类名作为后缀的
异常的由来:问题也是现实生活中的一个具体事物,也可以通过java的类的形式进行描述并封装成对象。其实就是Java对不正常情况进行描述后的对象体现。
对于问题的划分:
两种:一种是严重问题,一种是非严重问题。
对于严重的,Java通过Error类描述
对于非严重的,Java通过Exception类进行描述
对于Error 一般不编写针对性代码对其处理
对于Exception可以使用针对性处理方式进行处理
无论Error或者Exception都具有一些共性内容
比如:不正常情况的信息,引发原因等。
异常的处理:Java提供了特有的语句进行处理
格式
try
{
需要被处理的代码;
}
catch(异常类 变量)
{
处理异常的代码;(处理方式)
}
finally
{
最后一定会执行的语句;
}
对捕获的异常对象进行常见方法操作。
String getMessage();//获取异常信息
String toString();//异常名称,异常信息,异常出现位置
String printStackTrace();//打印异常的堆栈跟踪信息。
其实Jvm默认的异常处理机制就是调用printStackTrace();
抛出异常 throws Exception
格式
1 public static int div(int a,int b) throws Exception//通过throws Exception说明该功能可能会出现问题 2 { 3 return a/b; 4 }
public static void main(Stirng[] args)//throws Exception继续向外抛出,谁调用谁处理
{
d.div(4,0);
}
对多异常的处理
1.声明异常时,建议声明更为具体的异常,这样可以处理得更具体。
2.对方声明几个异常就对应有几个catch块,如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面(不要定义多余的catch块)
建议在进行catch处理时,catch中一定要定义具体处理方式
不要简单定义一句e.printStackTrace(),也不要就简单的书写一条输出语句。(应该保存到运行日志中等等)
因项目中会出现未被Java描述的问题,所以可以按Java对问题的思想,对问题进行封装,将特有问题基尼系那个自定义异常封装。
当在函数内部出现throw抛出异常对象,那么就必须要给对应的处理动作,要么try catch处理,要么在函数上声明,让调用者处理
一般情况,函数内出现了异常,函数上需要声明。
自定义异常
如何自定义异常信息呢?
因为父类中已经把异常信息的操作完成了,所以子类构造时,将异常信息传递给父类,通过super语句,那么就可以直接通过getMessage方法获取自定义异常
自定义异常必须是自定义类继承Exception
继承Excepton的原因
异常体系中有一个特点:异常类和对象都被抛出
他们都具备可抛性,这个可抛性是Throwable这个体系中的独有特点。只有这个体系中的类猜可以throws和throw操作。
throw和throws的区别
throw用在函数内,throws用在函数上。
throw后面跟的是异常对象,throws跟的是异常类。
包(Package)
1.对类文件进行分类管理
2.给类提供多层命名空间
3.写在程序文件的第一行
4.访问类的格式是 包名.类名
5.包也是一种封装形式
总结:包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰,不同包中的子类还可以直接访问父类中被protected权限修饰的成员
包与包之间可以使用的权限只有两种:public protected。
public protected default private
同类中 √ √ √ √
同包中 √ √ √ ×
子类 √ √ × ×
不同包 √ × × ×
为了简化类名的书写,使用一个关键字:import
import是导入包中的类
建议不要写通配符*,需要用到包中哪个类,就导入哪个类
建议定义包名不要重复
Jar包
Java的压缩包
1.方便项目的携带
2.方便与使用,只要在classpath设置jar路径即可
3.数据库驱动,SSH框架等都是以jar包体现的。

浙公网安备 33010602011771号