Java 异常处理

#开始

  刚开始接触Java的时候 看不到异常处理的意义所在 真是...现在发现似乎大有用处


#代码

  

package ch1;

import java.rmi.RemoteException;

public class myException{

    public static void main(String[] args) throws RemoteException,myException2 {    //这里需要定义抛出的异常类
        try 
        {
            int a=3;    //修改这里抛出不同的异常
            
            if(a==1)
            {
                throw new RemoteException("异常3");        //抛出一个默认的异常
            }
            if(a==2)
            {
                throw new Exception("异常4");    //默认异常
            }
            if(a==3)
            {
                throw new myException2("构造参数");    //抛出自定义异常
            }
        }catch(RemoteException e)
        {
            System.out.println("异常:" + e.getMessage());
        }catch(myException2 e)
        {
            System.out.println("异常:我自己的异常");
        }catch(Exception e)    //如果这个在catch(myException2 e)之前的话 这里就不会被执行
        {
            System.out.println("异常:" + e.getMessage());
        }finally  
        {
            System.out.println("这里的代码总会执行");
        }
        
    }

}

/*
 * 所有异常都必须是 Throwable 的子类。
 * 如果希望写一个检查性异常类,则需要继承 Exception 类。
 * 如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。
 * ***/

class myException2 extends Exception    //自定义的异常类 需要继承
{
    public myException2(String str)
    {
        System.out.println("我自己的异常..." + str);
    }
}

#运行结果

#遇到的问题

  1. 如果自定义了异常类 那么抛出的自定义异常所对应的catch块一定要在自定义异常类的catch块的前面 否则的话自定义异常所对应的catch块不会执行 报错

  2. 不能在一个代码块里抛出两个异常 因为下面的异常不可能执行到 因为抛出一个异常之后 就跳转到catch里面了 会报错

如果有错误 请在下面留言 提醒一下 谢谢

猜你喜欢

转载自www.cnblogs.com/cjdty/p/8934489.html