欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java SE 异常处理

程序员文章站 2022-06-09 20:20:08
...

异常处理机制

exception 类

java异常结构中定义有Throwable类,有两个直接已知子类error和Exception,

error 表示为java运行出现问题

exception 表示用户操作导致的问题

异常处理的目的:当一场发生时能稳妥的终止程序,避免严重后果,具体的操作通常包括通知,恢复,退出

try ... catch语句

对一段代码产生的异常对象进行捕获,如捕获到则执行catch中的语句,不补货则会跳过catch不执行

getMessage()方法,用来得到异常对象的信息

printStackTrace 用来跟踪异常事件发生时执行堆栈的内容,系统默认这个

public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String str = in.nextLine();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		
			Date date;
			try {
				date = sdf.parse(str);
				System.out.println(date);
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		
	}

throw语句

可以使用throw来自行抛出异常  如:throw ArithmeticException();

public static void main(String[] args) {
		double dbzero = 0.0;
		System.out.println("浮点数除以0"+ (100/dbzero));
		try {
		if(dbzero == 0) 
			throw new ArithmeticException();
		}catch(ArithmeticException e) {
			System.out.println("除0异常");
		}
		
	}


throws语句

程序中的方法可能会因错误产生异常,但你不希望在方法中直接处理这些异常,而是由调用这个它的    方法来统一处理,

这时可使用throws关键词来声明这个方法会抛异常


public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String str = in.nextLine();	
			try {
				StringToDate(str);
			
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}	
	}
	public static void StringToDate(String str) throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date date = sdf.parse(str);
		System.out.println(date);
	}


finally块

finally语句为异常处理提供一个统一的出口,使控制流程转到其它部分前能做程序状态统一的处理,一定会被执行.

try catch finally

RuntimeException

NullpointerException

ArrayIndexOutOfBoundsException

ClassCastException

NumberFormatException

IllegalArgumentException

ArithmeticException

ParseException