本次的复习博客的内容主要是围绕着第九,十,十一章这三章的一个复习博客 复习内容从bilibili第七十二个视频至八十八个视频
第七十二个视频 异常(Exception)什么是异常
什么是异常?
比如程序运行时磁盘空间不足,网络连接中断,被装载的类不存在等等,针对这种情况,在java语言中,引入异常以异常类的形式对这些非正常情况进行封装,通过异常处理机制对程序运行时发生的各种问题进行处理
他先通过下面一个实例来表达异常的作用
代码
package 哔哩哔哩;
public class Example1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int result =divide(16,2);//调用divide()方法
System.out.println("x除以y等于:"+result);
}
//下面的方法实现了两个整数相除
public static int divide(int x,int y) {
int result =x/y;//让整数相除
return result;
}
}
代码图
运行结果图
如果将y的参数改为0的话 代码将会报错因为0不能作为除数 报错就是异常也就是本章我们主要学习的内容
代码如下
异常中也是有着一个继承体系
如图Throwable类这个类是所有的错误异常的父类,
通过图中可以看出 Throwable有两个直接子类Error和Exception,其中Error代表程序中的错误,Exception代表程序中产生的异常
两个直接子类的详细讲解
1.Error类为错误类 他表示是java运行时产生的系统内部错误或者资源耗尽的错误,是一个仅靠修改程序本身是不能恢复执行的 只能重新改没有别的办法 如果出现了这个问题只能修改 改对了才能运行
2.Exception类称为异常类 这个异常类跟上面不一样的是上面的是出现问题了不能程序自己处理,只能程序员自己修改,异常类的不同点就是如果出现异常的话 程序会自己处理然后输出异常原因异常类的众多子类有一个特殊的RuntimeException类,该类以及子类用于运行时异常
方法声明 | 功能描述 |
StringgetMessage() | 返回此throwable的详细消息字符串 |
voidprintStackTrace() | 将此throwable及其追踪输出至标准错误流 |
void printStackTrace(PrintStream s) | 将此thrpwable及其追踪输出到指定的输出流 |
第七十三个视频try...catch和finally
java提供了一种对异常进行处理的方式——异常捕获。异常捕获是通过使用try...catch语句
try{
//程序代码块
}catch(ExceptionType(Exception其他子类)e){
//对ExceptionType的处理
}
其中在try代码块中编写可能发生异常的java语句catch代码块中编写针对异常进行处理的代码。当try代码,当程序中发生异常,系统会将这个异常信息封装成一个异常对象,并将这个对象传递给catch代码块,catch代码快需要一个参数指明它所能够接受异常类型,这个参数必是Exception类或他的子类 通过实例讲解以上内容
代码
package 哔哩哔哩;
public class Example2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//下面代码定义了一个try...catch语句捕捉依次
try {
int result = divide(4,0);//调用divide方法
System.out.println(result);
}catch (Exception e) {//对异常进行处理
System.out.println("捕捉的异常为:"+e.getMessage());
}
System.out.println("程序继续向下执行");
}
//下面的方法实现了两个整数相除
public static int divide(int x,int y) {
int result = x/y;//定义变量result记录两个数相处的结果
return result ;
}
}
代码图
运行结果图
第七十四个视频throws关键字
上一节中由于调用自己写的divide()方法,因此很清楚该方法可能会发生异常,试想一下,如果去调用一个别人写的方法时,是否能知道别人写的方法是否会有异常呢?这很难判断所以针对这种情况 ,java中允许在方法的后面使用throws关键字对外声明该方法有可能发生的异常,这样调用者再调用方法时,就明确的知道该方法有异常,并且必须在程序中对异常进行处理
throws关键字声明抛出异常的语句格式如下
修饰符 返回值类型 方法名 ([参数1,参数2....])throws ExceptionType1[,ExceptionType2.....]
throws关键字需要卸载方法声明的后面throws后面需要声明方法中发生异常的类型,通过将这种做法称为方法声明抛出一个异常
代码