zoukankan      html  css  js  c++  java
  • 异常

    public class 处理Exception {
        public static void main(String []ages){
    
        //产生异常
        
        //除0异常
        
        //1.捕获
        
        try
        {
        //int i=12/0;
        //int 出现了异常直接跳到catch
        
        String a=null;
    //    a.length();
        
        //打开一些资源
        String s=" ";
        System.out.println("打开资源");
            
        //使用
        System.out.println("使用资源");
        //如果在使用中出现异常
        a.length();
        
        //关闭资源并释放
        //可能不被执行,放入finall里
        //System.out.println("希望一定要执行的关闭资源,释放内存代码");
        
        }
        
        catch(ArithmeticException ex){
            //针对特定的异常进行特别的处理
            //除0;
            System.out.println("捕获了ArithmeticException的异常");
            //获取异常信息
            String str= ex.getMessage();
            
            //处理方式显示;记录日志
            System.out.println("异常信息="+str);
            
            //把异常详细信息输出到控制台
            ex.printStackTrace();
            
            System.out.println();
        }
        
        catch(NullPointerException ex){
            //针对特定的异常进行特别的处理
            //空值
            System.out.println("捕获了NullPointerException的异常");
            //获取异常信息
            String str= ex.getMessage();
            
            //处理方式显示;记录日志
            System.out.println("异常信息="+str);
            
            //把异常详细信息输出到控制台
            ex.printStackTrace();
            
            System.out.println();
        }
        
        //兜底
        catch(Exception ex){
            //针对特定的异常进行特别的处理
            
            System.out.println("捕获了Exception的异常");
            
            //获取异常信息
            String str= ex.getMessage();
            
            //处理方式显示;记录日志
            System.out.println("异常信息="+str);
            
            //把异常详细信息输出到控制台
            ex.printStackTrace();
            
            System.out.println();
        }
        
        finally//一定会被执行的代码
        {
            
            System.out.println("希望一定要执行的关闭资源,释放内存代码");
        }
        
        System.out.println("程序还在走");
        
        //即使发生异常也会执行finally
    //    try{int i=12/0;}
    //    finally{
    //        System.out.println("hehe");
    //    }
        
        
        }
    public class MyThrow {
        
        //把 throws放在方法的后面 特别声明有可能出现的异常
        //方法本身不处理,交给调用者处理
        //抛出异常,显示给使用者错误的原因
        public int chu(int a,int b)throws Exception
        
        {   if(b==0){
            Exception e=new Exception("b输入错误");
            throw  e;
        }
            return a/b;
        }
        
        //自己定义异常
        public void test() throws Exception{
            
            //自己定义
            Exception e=new Exception("我自定义的异常信息");
            throw  e;
        }
        
        
        
         public static void main(String []ages) throws Exception 
         //main方法里需要解决问题而不是抛出
         {
            
             MyThrow a=new MyThrow();
            
    //         try {
    //            a.chu(10, 0);
    //        }
    //         catch (Exception e) {
    //            // TODO 自动生成的 catch 块
    //            //e.printStackTrace();
    //            System.out.println("我捕获了类常"+e.getMessage());
    //            
    //            throw e;//处理后抛出异常
    //        }
             
             
             //运行自定义的错误信息
            try{a.test();}
            
            catch(Exception e){
             System.out.println(e.getMessage());
             }
             
             a.chu(10, 0);
             
             System.out.println("结束了");
             
        }
  • 相关阅读:
    【PC Basic】CPU、核、多线程的那些事儿
    为什么要使用 do while(0)?
    DPDK CAS(compare and set)操作
    编程中Foo,Bar 到底是什么意思
    如何用Python进行ARP攻击?
    有哪些有趣的化学方程式?
    1636. 按照频率将数组升序排序
    1046. 最后一块石头的重量
    1122. 数组的相对排序
    459. 重复的子字符串
  • 原文地址:https://www.cnblogs.com/storm47/p/5274503.html
Copyright © 2011-2022 走看看