java1234开源博客系统
博客信息

Java异常处理-捕获和处理异常

发布时间:『 2016-10-24 20:44』  博客类别:Java核心基础  阅读(7414) 评论(0)

Java异常处理-捕获和处理异常


java程序中的异常我们可以捕获然后处理,这样后面的程序就可以继续执行了;

类似出了交通事故,交警立马出动 拖车的拖车 调解的调解 很快恢复路段行驶;


在java中,我们用try-catch来捕获异常 

try...cacth...finally


前面的代码我们用try...catch...来捕获下

package com.java1234.chap04.sec01;

public class ExceptionDemo {

	public static void main(String[] args) {
		String str="123a";
		try{
			int a=Integer.parseInt(str);			
		}catch(NumberFormatException e){
			e.printStackTrace();
		}
		System.out.println("继续执行");
	}
}

运行结果:

QQ鎴浘20161024203137.jpg


我们发现 虽然报错了 但是程序依然继续执行了;


当然通过查看jdk api,我们发现Exception是异常类的老祖宗,在捕获异常的时候,假如我们不确定会抛出什么异常,

我们可以写多个异常捕获:

类似如下代码:

package com.java1234.chap04.sec02;

public class Demo1 {

	public static void main(String[] args) {
		String str="123a";
		try{
			int a=Integer.parseInt(str);			
		}catch(NullPointerException e){
			e.printStackTrace();
		}catch(NumberFormatException e){
			e.printStackTrace();
		}catch(Exception e){
			e.printStackTrace();
		}
		System.out.println("继续执行");
	}
}


注意 由上往下的异常 必须范围同级别或者更高;否则编译报错;


try...cacth...finally 假如我们有种需求,不管有没有发生异常,比如执行某些代码,这时候,

finally就派上用场了;

我们给下实例,视频中会详细讲述:

package com.java1234.chap04.sec02;

public class Demo2 {

	public static void testFinally(){
		String str="123a";
		try{
			int a=Integer.parseInt(str);
			System.out.println(a);
		}catch(Exception e){
			e.printStackTrace();
			System.out.println("exception");
			return;
		}finally{
			System.out.println("finally end");
		}
		System.out.println("end");
	}
	
	public static void main(String[] args) {
		testFinally();
	}
}

运行输出:

java.lang.NumberFormatException: For input string: "123a"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.parseInt(Integer.java:615)
	at com.java1234.chap04.sec02.Demo2.testFinally(Demo2.java:8)
	at com.java1234.chap04.sec02.Demo2.main(Demo2.java:21)
exception
finally end


我们发现 finally里面的都会执行 但是try catch后面的代码未必会执行;



关键字:   java     异常  
关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有