package com.ceac.deng;

public class T10Exception {

	public static void main(String[] args) {

		Number number = new Number();
		
		try {
			number.divided(2, 0);
		} catch (A e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
			e.printStackTrace();
		} catch (B e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
			e.printStackTrace();
		}finally{
			System.out.println("finally");
		}
	}

}

//异常A
class A extends Exception{

	public A(String message) {
		super(message);
	}	
}

//异常B
class B extends Exception{

	public B(String message) {
		super(message);
	}
}

class Number {
	public int divided(int x, int y) throws A, B
	{
		if (y < 0)
		{
			throw new A("输入的除数不能小于0");
		}
		
		if (y == 0)
		{
			throw new B("输入的除数不能为0");			
		}
		
		return x / y;
	}
	
}
 


  1. [总结] 
  2.  
  3. 1.自定义异常: 
  4.  
  5. class 异常类名 extends Exception 
  6. { 
  7.     public 异常类名(String msg) 
  8.     { 
  9.         super(msg); 
  10.     } 
  11.  
  12.  
  13. 2.标识可能抛出的异常: 
  14.  
  15. throws 异常类名1,异常类名2 
  16.  
  17. 3.捕获异常: 
  18. try{} 
  19. catch(异常类名 y){} 
  20. catch(异常类名 y){} 
  21.  
  22. 4.方法解释 
  23. getMessage() //输出异常的信息 
  24. printStackTrace() //输出导致异常更为详细的信息 
  25.  
  26.  
  27. */  

如果jdk里面没有提供的异,我们就要自己写.我们常用的类ArithmeticException,NullPointerException,NegativeArraySizeException,ArrayIndexoutofBoundsException,SecurityException这些类,都是继承着RuntimeException这个父类,而这个父类还有一个父类是Exception.那么我们自己写异常类的时候,也是继承Exception这个类的.

实践:

class MyException extends Exception { //继承了Exception这个父类
private int detail;
MyException(int a) {
detail = a;}
public String toString() {
return "MyException[" + detail + "]";
}}
class ExceptionDemo {
static void compute(int a) throws MyException {
System.out.println("调用 compute(" + a + ")");
if(a > 10)
throw new MyException(a);
System.out.println("常规退出 ");
}
public static void main(String args[]) {
try {
compute(1);
compute(20);
} catch (MyException e) {
System.out.println("捕捉" + e); //这样就可以用自己定义的类来捕捉异常了
}}}

如果你开发程序用到好多组件,或其它厂商的东西.那么出现的异常会是莫明其妙的,这样的话会给调试带来很大的不便.往往在开发的过程中会写很多自定义的异常类.


总结:
异常处理机制保证java程序的正常运行,具有较高安全性的重要手段.对于开发良好的编程习惯是非常重要的.