续写异常-(几个程序)

来源:互联网 发布:火鸟移动编程 编辑:程序博客网 时间:2024/04/29 10:53

异常的程序及其实现的结果


package testexception;

public class ReturnException {
static void methodA(){
try{
System.out.println(“进入方法A”);
throw new RuntimeException(“制造异常”);
}finally{
System.out.println(“用A方法的finally”);
}
}
static int methodB(){
try{
System.out.println(“进入方法B”);
return 1;
}finally{
System.out.println(“用B方法的finally”);
return 2;
}
}
public static void main(String[] args){
try{
methodA();
}catch(Exception e){
System.out.println(e.getMessage());
}
int i=methodB();
System.out.println(i);
}
}
结果
进入方法A
用A方法的finally
制造异常
进入方法B
用B方法的finally
2

这是自定义的异常
package testexception;

public class MyException extends RuntimeException {
static final long serialVersionUID = -7034897190745766939L;
public MyException(){

}public MyException(String mag){    super(mag);}

}
这是主方法,调用了上面的类方法
package testexception;

public class TestEcmDef {
public static void main(String[] args){

    try{        int i=Integer.parseInt(args[0]);    int j=Integer.parseInt(args[1]);    Ecm(i,j);}catch(NumberFormatException e){    System.out.println("输入的数据类型不一致");}catch(ArrayIndexOutOfBoundsException e){    System.out.println("缺少命令行参数");}catch(ArithmeticException e){    System.out.println("分母为零了");}catch(EcmDef e){    System.out.println(e.getMessage());}

}

public static  void Ecm(int i,int j) throws EcmDef{    if(i<0||j<0){        throw new EcmDef("你输入的数值存在负数");    }    System.out.println(i/j);}

}
class EcmDef extends Exception{
static final long serialVersionUID = -3387516229948L;
public EcmDef(){

 } public EcmDef(String msg){     super(msg); }

}

package testexception;

public class testExceptionCorcleOne {
public static void main(String[] args){
Circle c1=new Circle(2.3);
Circle c2=new Circle(2.1);
System.out.println(c1.Compaper(c2));
System.out.println(c1.Compaper(new String(“AA”)));
}
}
class Circle{
private double radius;

public Circle(double d) {    super();    this.radius = d;}public float getRadius() {    return (float) radius;}public void setRadius(float radius) {    this.radius = radius;}public int Compaper(Object obj){    if(this==obj){        return 0;    }else if(obj instanceof Circle){        Circle c=(Circle)obj;        if(this.radius>c.radius){            return 1;        }else if(this.radius==c.radius){            return 0;        }else {            return -1;        }    }    else{        //return -2;        //throw new RuntimeException("传入的类型不同");        throw new MyException();    }}

}
运行结果“
1
Exception in thread “main” testexception.MyException
at testexception.Circle.Compaper(testExceptionCorcleOne.java:43)
at testexception.testExceptionCorcleOne.main(testExceptionCorcleOne.java:8)”

原创粉丝点击