java异常处理的练习

//练习一
package zhihua1;

public class ReturnExceptionDemo {
    public static void methodA() throws Exception {
        try {
            System.out.println("进入方法A");
            throw new Exception("制造异常");//手动抛出异常
        }finally {
        System.out.println("用A方法的finally");
        }
    }
    public 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);
        
    }

}

//练习二
package zhihua1;
/*
 * 编写应用程序,接收命令行的两个参数,要求不能输入负数,计算两数相除。
 * 对数据类型不一致(NumberFormatException)、缺少命令行参数( ArrayIndexOutOfBoundsException、
 * 除0(ArithmeticException)及输入负数(EcDef 自定义的异常) )进行异常处理。
 * 提示:
 * (1)在主类(EcmDef)中定义异常方法(ecm)完成两数相除功能。
 * (2)在main()方法中使用异常处理语句进行异常处理。
 * (3)在程序中,自定义对应输入负数的异常类(EcDef)。
 * (4)运行时接受参数 Java EcmDef 20 10
 *       //args[0] = "20" args[1]="10"
 * (5)Interger类的static方法parseInt(String s)将s转换成对应的int值。如 int a = Interger.parseInt("a").
 * 
 */
public class EcmDef {
     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 (EcDef e) {
            System.out.println(e.getMessage());
        }
    }
     public static void ecm(int i,int j) throws EcDef {
         if(i < 0 || j < 0) {
             throw new EcDef("你输入的数值存在负数!");//手动抛出异常
         }
         System.out.println(i / j);
     }
}
//自定义异常类
class EcDef extends Exception{
    static final long serialVersionUID = -338751699329948L;
    
    public EcDef() {
        super();
    }
    public EcDef(String msg) {
        super(msg);
    }

}

猜你喜欢

转载自blog.csdn.net/weixin_41536380/article/details/88751184