在方法中抛出异常,使用throw关键字抛出异常

package com.exception.demo;

public class Captor {

	/**
	 * @param args
	 * Exception是所有异常类的父类
	 * 如果将它的代码块方其他两个代码块前面,后面的代码块将永远得不到执行
	 * 所以 catch 语句的顺序不可调换
	 * 
	 * 异常的使用原则:
	 *    1.在当前方法中使用 try - catch 语句捕获异常
	 *    2.一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子类
	 *    3.如果父类抛出多个异常,则覆盖方法必须抛出那些异常的一个子集,不能抛出新异常 
	 */
	static int quotient(int x,int y)throws MyException{	// 定义方法抛出异常
		if(y < 0){	// 判断参数是否小于0
			throw new MyException("除数不能是负数");	// 异常信息
		}
		return x / y;	//  返回值
	}
	
	
	public static void main(String[] args) {	// 主方法
		try {	// try语句包含可能发生异常的语句
			int result = quotient(3, -1);	// 调用语句方法 quotient()
		} catch (MyException e) {	// 处理自定义异常
			System.out.println(e.getMessage());	//输出异常信息
		}catch (ArrayStoreException e) {	// 处理 ArrayStoreException 异常
			System.out.println("除数不能为0");	// 输出异常信息
		}catch (Exception e) {	// 处理其它异常
			System.out.println("程序发生了其他异常");	//输出提示信息
		}
	}

}

class MyException extends Exception {	// 创建自定义异常类
	String message;	// 定义 String 类型变量
	
	public  MyException(String ErrorMessager){	// 父类方法
		message = ErrorMessager;
	}
	
	public String getMessage(){	// 覆盖 getMessage() 方法
		return message;
	}

}

  

posted @ 2014-12-19 19:18  小菜希  阅读(2673)  评论(0编辑  收藏  举报