异常的处理

异常处理

异常的处理:try/catch

1.语法结构

try{
可能发生异常的代码
}catch(异常的类型1 异常名称){
捕获到该异常,处理的代码
(1)什么也不做
(2) 打印异常
(3)其他
}catch(异常的类型2 异常名称){

}

执行的特点;
(1)如果try\中的代码没有发生异常,那么久不会进入到catch中去,而是直接把程序运行完.
(2)如果try中的代码发生了异常
A:有catch可以捕获它,那么符合那个就进入到catch的那个异常的捕获是按顺序的,先捕获写在前面的异常
说明:多个catch有要求,必须小的类型先catch来捕获,大的类型后用catch捕获

 B:所有的catch都没有捕获到异常,那么就将异常抛给上层调用者.
 如果没有catch,当前方法结束,回到上级调用者 去处理.

做一个异常练习
从控制台输入两个数,做除法的异常处理

/** * */
package per.leiyustudy.throwable;

import java.util.Scanner;

import org.hamcrest.internal.ArrayIterator;
/** * @author 雷雨 * */
public class TestThrowType {

	/** * @param args */
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Scanner sca = new Scanner(System.in);
		String  a = sca.next();
		String b = sca.next();
		
		try {
			int bei = Integer.parseInt(a);
			int chu = Integer.parseInt(b);
			System.out.println("被除数是"+bei);
			System.out.println("除数是"+chu);
			int shang  = bei/chu;
			System.out.println("商是"+shang);
		} catch (NumberFormatException e) {
			// TODO 自动生成的 catch 块
			System.out.println("输入的数字类型不为整数");
		}catch(ArithmeticException e) {
			System.out.println("除数不能为0");
		}catch(ArrayIndexOutOfBoundsException e) {
			System.out.println("参数的个数少于两个");
		}catch(Exception e) {
			System.out.println("捕获了其他的所有异常");
		}

	}

}

全部评论

相关推荐

我见java多妩媚:大外包
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务