Throwable
|---Error //通常出现重大问题如:运行的类不存在或者内存溢出等。
|---Exception //运行时出现的一起情况
|---R untimeException //特殊异常类,抛时不需要声明
Exception和Error的子类名都是以父类名作为后缀。
3.Exception有两种:
a)、编译时被检测异常
该异常在编译时,如果没有处理(没有抛也没有try),编译失败。该异常被标识,代表着可以被处理。
b)、运行时异常(编译时不检测)
在编译时,不需要处理,编译器不检查。该异常的发生,建议不处理,让程序停止。需要对代码进行修正。如:RuntimeException以及其子类。
4.异常的两种处理方式(好处:提高的程序的健壮性)
a) 、 通过关键字throws抛出异常
b)、 java提供了特有的语句进行处理。
try
{
需要被检测的代码。
}
catch(异常类 变量)
{
处理异常的代码;(处理方式)
}
finally
{
一定会执行的语句;
}
注意:0)语句块中可以有finally也可以没有。
1)finally中定义的通常是关闭资源代码。因为资源必须释放。
2)如果在一个功能中,定义了一些必须要执行的代码,可以用try{}finally{}的方式,将一定执行的代码放在finally代码块中。
3)finally只有一种情况不会执行。当执行到System.exit(0);fianlly不会执行。
异常的一些方法:
其实JVM默认的异常处理机制,就是在调用printStackTrace方法,打印异常的堆栈的跟踪信息。
5.throws与throw的区别
throws作用在函数的后面,抛出的是异常类。
throw作用在函数的里面,抛出的是异常对象。
二、自定义异常
自定义异常类继承Exception或者RuntimeException。为了让该自定义类具备可抛性,让该类具备操作异常的共性方法。
所有可处理的异常都继承Exception;
语法:
class 异常类名 extendsException{
public异常类名(String msg){
super(msg);//将会返回输入的信息
}
}
三、包
1、什么是包?
包是一种封装形式(文件),里面存放Java文件。
2、作用:
a) 、为避免多个类重名的情况,如果出现两个相同名字的类,可通过包将两者区分,从而避免冲突。
b) 、对类文件进行分类管理,可以将相关的一些类放在同一个包中。
c)、给类提供多层命名空间,如a包中的Demo.class文件,如果要创建Demo对象,就要在使用时加上a.如:a.Demo demo=new a.Demo()
4、包的出现可以将java的类文件和源文件相分离。
3、规则
1、包必须写在程序的第一行。因为要先有包,才知道类文件的存放地方。
2、类的全称:包名.类名。
3、编译定义了包的程序文件时,在编译时要指定包的存储目录。
如:javac –d c:\mypack类名.java。
若要访问不同包中的类时,程序代码首行必须的声明为public,import 包名.类名称。用*表示这个包下的所有类。