第15章 异常处理

一、Java异常的概念

System.exit(1);
//强行中止程序

二、检查性异常与非检查性异常

package day72601;
/*
 * java异常类,是一个用于处理java代码中的错误。
 * Object有一个用于处理问题的类是Throwable,他有两个子类是Error和Exception
 * Error是错误,一般情况下是环境造成的错误,跟程序员没关系。
 * Exception是异常,一般是由程序员造成的错误。
 * Exception又分为检查性异常和非检查性异常
 * Checked Exception(检查性异常)是RuntimeException及其子类以
 * 外的其他的类,不是程序员的问题。
 * UnCheckedException(非检查性异常)是RuntimeException及其子类
 * ,是程序员的问题。
 */
public class ExceptionTest02 {
	public static void main(String[] args) {
		try {
			Class.forName("day72601"+"ExceptionTest02");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

三、捕获异常

package day72601;

public class ExceptionTest04 {
	//try catch是真正解决异常的地方
	//try中写的是可能发生异常的代码
	//catch里写的是真正解决异常的代码
	//try可以跟零个或多个catch,但是不能单独存在
	//try可以跟零个或一个finally
	public void method1() {
		try {
		Class.forName
		("cn.com.haina.lesson15.ExceptionTest04");
		}
		//catch执行是有顺序的,不能让小的异常放在大的异常后面
		//平级的不用管顺序
		catch(ClassNotFoundException e) {
			
		}catch(Exception e) {
			
		}
		finally {
			//这里写的是受保护的代码块
		}
	}
}
finally
package day72601;

public class ExceptionTest05 {
	public static void main(String[] args) {
		int[] a = new int[10];
		try {
			System.out.println(a[10]);
		}catch(ArrayIndexOutOfBoundsException e) {
			System.out.println("数组越界");
			
		}
		//finally中写的是受保护的代码不管try是否发生异常,
		//finally中都会执行
		finally {
			System.out.println("finally代码块中的代码");
		}
	}
}	

四、自定义异常

package day72601;

public class TestException extends Exception {
	public TestException() {
		super("如果数组发生越界,我们就将其捕获,显示到控制台上");
		
	}
	//自定义异常在写的过程中,throw进行抛出,还要用throws进行声明
	public static void main(String[] args) throws TestException{
		try {
			int[] a = new int[10];
			System.out.println(a[10]);
		}catch(ArrayIndexOutOfBoundsException e) {
			throw new TestException();
		}
	}
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值