zoukankan      html  css  js  c++  java
  • 异常

    一、异常继承关系

    二、异常处理 

           a、打印异常信息到控制台(3种方式)

           b、将异常信息保存到一个文件,方便查看

           c、抛出异常,谁调用谁处理。在方法上使用throws抛出异常类

       语法结构:

        try {
              int num = 1/0;//可能出现异常的代码
            } catch (Exception e) {
                //这里写一些处理异常的代码
                //打印异常信息的3种方式
                System.out.println(e.getMessage());//打印原因
                System.out.println(e.toString());//打印异常类型和原因
                e.printStackTrace();//打印日志,还能定位,推荐
            } finally {
                //这里最好不写业务代码,一般写:关闭流和释放资源的代码
                //不管是否有异常,这里的代码都会执行
            }

    注意:1、多个catch中的异常类型,子类放在前面,父类在后面

    2、try中一旦匹配到异常时,执行完catch中代码后,整个结构结束,但finally中的代码永远都会执行。

    3、抛出运行时异常时,不会提示try-catch

    三、自定义异常 

      步骤:可以查看一些异常源代码,模仿

      1、自定义异常类,继承Exception,快捷生成无参构造器和一个带String参数的构造器。

      2、在业务方法中,可能出现异常的地方,创建该异常对象,并向外抛出。

      3、调用该方法时,处理该异常。

    /**
     * 自定义异常
     *
     */
    public class MyException extends Exception {
    
        private static final long serialVersionUID = 4408141355562049852L;
    
        public MyException() {
            super();
        }
    
        public MyException(String message) {
            super(message);
        }
        
    }
    /**
     * 测试自定义异常
     */
    public class MyExceptionTest{
        public static void main(String[] args) {
            try {
                regist("tom");//cn.itsource.mycode.MyException: 名字重复!
            } catch (MyException e) {
                e.printStackTrace();
            }
        }
        
        /**
         * 用户注册的方法
         */
        public static void regist(String name) throws MyException {
            String[] names = {"tom","jerry","jack"};
            for(String str:names){
                if(str.equals(name)){
                    throw new MyException("名字重复!");//如果注册的名字已经存在,则抛出异常。
                }
            }
            System.out.println("注册成功!");
        }
    }
  • 相关阅读:
    19.1.30 [LeetCode 24] Swap Nodes in Pairs
    19.1.29 [LeetCode 23] Merge k Sorted Lists
    06_Python异常处理机制
    05_Python的文件操作
    04_Python中的35个关键字
    03_Python基础语法
    02_Python开发环境使用和PDB调试
    01_Python基础知识梳理
    socket post
    python_socket_cmd
  • 原文地址:https://www.cnblogs.com/zwcnblog/p/9902068.html
Copyright © 2011-2022 走看看