【Java】Java中自定义的异常,
【Java】Java中自定义的异常,
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.自定义异常:
- class 异常类名 extends Exception
- {
- public 异常类名(String msg)
- {
- super(msg);
- }
- }
- 2.标识可能抛出的异常:
- throws 异常类名1,异常类名2
- 3.捕获异常:
- try{}
- catch(异常类名 y){}
- catch(异常类名 y){}
- 4.方法解释
- getMessage() //输出异常的信息
- printStackTrace() //输出导致异常更为详细的信息
- */
如果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程序的正常运行,具有较高安全性的重要手段.对于开发良好的编程习惯是非常重要的.
相关文章
- 暂无相关文章
用户点评