优雅的异常处理 -- Java中的异常

优雅的异常处理 – Java中的异常

什么是java的异常

  1. 代码传入的参数不合适,导致一些问题
  2. 异常后面想要执行的代码,执行不到了,需要处理异常之后,代码能够继续往下

java异常的分类

优雅的异常处理 -- Java中的异常
优雅的异常处理 -- Java中的异常

异常的处理

1.自己捕获处理

语法:
try{
//可能产生异常的代码
}catch(捕获的异常类型 e){//e是形式参数
//该异常捕获之后要做的操作
}catch(捕获的异常类型 e){//e是形式参数
//该异常捕获之后要做的操作
}finally{
//异常发生之后一定会执行到的语句块:
//①流资源关闭②释放锁
}

语句块执行顺序:

  1. 顺序执行:进入异常捕获语句块
  2. 如果产生异常,执行catch捕获,捕获到对应异常,并且对应catch后面的代码块
  3. finally语句块一定会执行到:前提前面语句没有执行System.exit(0)退出虚拟机
public class _09ExceptionMsg {
	/*
	 * 异常信息的获得而方式 
	 * 		1.直接打印异常对象 
	 * 		2.通过异常对象,调用getMessage()方法获得
	 * 		3.通过异常对象,调用printStackTrace 打印异常信息
	 */
	public static void main(String[] args) {
		try {
			System.out.println(1/0);//产生了一个异常对象		
		} catch (Exception e) {//捕获异常
			
			System.out.println(e);//打印的捕获的异常对象,toString
			
			String message = e.getMessage();
			System.out.println(message);
			
			e.printStackTrace();
		}

	}
}
2.抛出异常

自己不处理,抛出给别人处理:

  1. 方法头:throws关键字,抛出异常类型[根据实际情况,后面的代码不需要执行]
  2. 异常抛出,可以在方法头,抛出多个异常的
  3. 直接抛出一个大的异常Exception数据类型的兼容
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class _08ThrowsException {
public static void main(String[] args) {
		try {
			add();
		} catch (ParseException b) {
			// TODO Auto-generated catch block
			b.printStackTrace();
		}
		System.out.println("在进来一次");
	}
	static void add() throws ParseException,NullPointerException{
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
		simpleDateFormat.parse("abc");//采用抛出的方式,后面的代码不会执行的
		System.out.println("进来了");//存入账户
	}
}