Java序谈之异常处理ThrowTable类和它的子类

1、类的子类

ThrowTabel类的子类:

Error:一般在数据库崩溃或者系统崩溃的时候出现的

Exception:一般在程序出错的时候出现的

2、Exception的特殊子类

Exception的子类:RuntimeException运行时异常

3、RuntimeException中包括哪些常见的异常?

  • 算术异常:ArithmeticException
  • 角标越界异常:IndexOutOfBoundsException
  • 空指针异常:NullPointerException
  • 类型转换异常:ClassCastException
  • 并发编程异常:CocurrentModifyException

4、一般来说处理异常有哪两种方式?

1、使用   try...catch...finally语句

2、使用   throw语句抛出异常给JVM,然后JVM打印异常信息

5、如何使用   try...catch...finally语句?

try:用于测试异常

catch: 用于捕获异常

finally:用于在语句最后执行,不管测试异常中语句是否正常,不管测试语句中语句是否匹配到,最后都会执行

代码示例:

public class Demo04finally的特点 {
	public static void main(String[] args) {
		try {
			System.out.println(10/0);
			return;
		} catch ( IndexOutOfBoundsException e) {
			System.out.println("异常:除以0了");
		} finally {
			System.out.println("异常结束前的操作");
		}
		System.out.println("正常语句");
	}
}

在测试异常语句中出现多个异常的情况:

	public static void main(String[] args) {
		int [] array = {1,2,3,4};
		try {			
			//这里产生异常对象之后就去匹配(执行一次后就匹配),匹配上了就执行catch中的语句,匹配成功后程序继续向下执行,
			System.out.println(10/0);
			System.out.println(array[10]);
		}catch (ArithmeticException e) {
			/*
			 * 注意:如果使用Exception e 直接匹配异常,多个catch同时捕获的时候,需要写在最后,Exception写在前面的话,所有的异常都是他的子类,那么后面的catch相当于是摆设
			 */
			System.out.println("异常:除数为0");
		}catch (IndexOutOfBoundsException e) {
			//如果发生多个异常需要匹配多个catch
			System.out.println("异常:角标越界");
		}
		catch (Exception e) {
			System.out.println("你出错了");
		}
		System.out.println("我执行没");
	}

分析:

1、在这里catch条件中 Exception e,他是这里异常的父类,需要放在最后面,如果将Exception放在前面,后面的异常将不会执行

2、在这里如果测试异常中的第一个语句没有catch到,就会结束try catch 执行后面的语句

6、运行时异常和编译异常和编写异常的区别

运行时异常:就是代码的问题,比如空指针,角标越界之类的

编译异常:是问题的提前预警,需要去处理,否则编译不通过

编写异常:是编写语法的错误

7、final、finally、finalize的区别?

final:修饰类不可被继承,修饰方法不可被重写,修饰变量变为常量

finally:在try...catch...finally语句中,用于在最后执行

finalize:在Object基类中,所有的对象共有的方法,在垃圾回收的时候被系统调用(内存空间满了)






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值