zoukankan      html  css  js  c++  java
  • Java基础-异常处理机制 及异常处理的五个关键字:try/catch/finally/throw /throws

    笔记:

    /** 异常处理机制: 抓抛模型
     *     1."抛", 一旦抛出,程序终止! printStackTrace()显示异常路径!
     *      2."抓", 抓住异常
     *      try{
     *          //try语句声明的变量是局部的,
     *          //可能出现异常的代码
     *      }catch(Exception e1){
     *          //处理的方式1, 或者显示提示信息
     *      }catch(Exception e2){
     *          //处理的方式2, 或者显示提示信息
     *      }finally{
     *          //可选,可不选
     *          //无论如何,这个代码是一定会执行的
     *      }
     *      3.异常处理后,后面的代码可以继续执行!
     *      4.在方法的声明出, 显式地抛出异常对象的类型
     *   -----------------------------------------
     * 自定义异常处理
     *      1.方法名() throws Class ExceptionList extends Exception
     *      2.
     * */

    [笔记2]异常处理的5个关键字:

    /**异常处理的5个关键字:
     * 捕获异常: try/catch/finally
     * 抛出异常:  throw 可以手动抛出异常对象;例如: throw new Exception("您输入的数值存在负数!");
     * 声明异常: throws 声明方法 可能要抛出的各种异常类,向上 传递异常,直到Main()函数!!:
     *                  returnType methodName(....) throws ExceptionList{
     *                      throw new ExceptionList("......");
     *                  }
     *                  class ExceptionList extends Exception{   //自定义的异常类
     *                  }
    

    代码1:

    public class TestExcption{
        public static void main(String[] args) throws IOException {
                TestExcption.method1();
        }
        static void method1() throws IOException ,FileNotFoundException{
            FileInputStream fis =new FileInputStream(new File("hello.txt"));
            int ch;
            while((ch =fis.read())!=-1 ){
                System.out.print((char)ch);
            }
            fis.close();
        }
    }

    运行1:

    Exception in thread "main" java.io.FileNotFoundException: hello.txt (ϵͳÕҲ»µ½ָ¶)
        at java.base/java.io.FileInputStream.open0(Native Method)
        at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
        at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
        at 任务138_处理异常.TestExcption.method1(TestExcption.java:35)
        at 任务138_处理异常.TestExcption.main(TestExcption.java:32)

    代码2:

    import java.util.Scanner;
    
    public class EcmDef {
        public static void main(String[] args) {
            try{
                Scanner cin=new Scanner(System.in);
                int i,j;
                i=cin.nextInt();
                j=cin.nextInt();
                EcmDef.ecm(i,j);
            }catch (NumberFormatException e){
                System.out.println("异常:输入数据类型不一致!");
            }catch (ArrayIndexOutOfBoundsException e){
                System.out.println("异常:缺少命令行参数");
            }catch (ArithmeticException e){
                System.out.println("异常:分母为0了");
            }catch (EcDef e){
                System.out.println(e.getMessage());
            }
        }
        public static void ecm(int i,int j) throws EcDef{   //综合应用throw()和throws()!
            if(i<0||j<0)
                throw new EcDef("您输入的数值存在负数!");
            else
                System.out.println(i/j);
        }
    }
    class EcDef extends Exception{  //自定义一个异常类, 两个构造器直接 生成即可!
        public EcDef() {
        }
        public EcDef(String message) {
            super(message);
        }
    }
    View Code

    运行2:

    1 -2
    您输入的数值存在负数!
    
    1 0
    异常:分母为0了
    View Code
  • 相关阅读:
    在 XD 和 Axure 中使用 iconfont
    chartjs 曲线图 纪要
    js ajax 等的的一些纪要
    程序员的方向
    sqlserver 常用的练习50例子
    (function(){})()原理
    layer弹出层详解
    sqlserver 表值函数 保存使用
    关于批量下载线程池与信号机制的使用
    tp5.1 phpstudy composer 配置等
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/9785774.html
Copyright © 2011-2022 走看看