zoukankan      html  css  js  c++  java
  • Java(15):异常

    异常

    e

    error错误由Java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。Exception是可以被程序处理的,并且程序应该尽可能去处理这些异常。

    五个关键字:

    try、catch、finall、throw、throws。

    public class Application{
        public static void main(String[] args) {
            int a = 1;
            int b = 0;
    
    
            try {
                int c = a / b;
            }catch (Exception e){
                System.out.println(e);
            }finally {
                // finally 可以不要
                System.out.println("不管怎么样都会执行我");
            }
        }
    
    }
    

    可以写多个catch语句来捕获不同的异常,得注意异常程度必须由低到高(见最上面的示意图):

    public class Application{
        public static void main(String[] args) {
            int a = 1;
            int b = 0;
    
    
            try {
                int c = a / b;
            }catch (Error r){ // 多个异常捕获必须由低到高
                System.out.println("Error");
            }catch (Exception e){
                System.out.println("Exception");
            }catch (Throwable t){
                System.out.println("Throwable");
            } finally {
                // finally 可以不要
                System.out.println("不管怎么样都会执行我");
            }
        }
    
    }
    

    最后的执行结果是打印出“Exception”。

    idea中选中代码、CTRL+ALT+T快捷生成异常代码。

    主动抛出异常。

    throw一般用在方法中抛出异常。然后就可以用try-catch捕获异常,如果在当前代码中不方便使用try-catch捕获异常,那么可以在方法上用throws抛出异常,让其他地方try-catch捕获异常。

    if (b == 0){
       throw new Exception(); // 主动抛出异常
    }
    int c = a / b;
    

    异常假设方法中处理不了这个异常,throws用在方法上抛出异常:

    public class Application{
        public static void main(String[] args) {
            int a = 1;
            int b = 0;
            new Application().test(a, b);
    
        }
        public void test(int a, int b) throws ArithmeticException{ // 方法上throws
            if (b == 0){
                throw new ArithmeticException(); // 主动抛出异常
            }
            System.out.println(a/b);
        }
    
    }
    

    自定义异常

    使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。只需要继承Exception类即可。

    大体有以下几个步骤:

    1. 创建自定义异常类。
    2. 在方法中通过throw关键字抛出异常对象。
    3. 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
    4. 在出现异常方法的调用者中捕获并处理异常。

    。。。。

  • 相关阅读:
    如何在Ubuntu Server 18.04上安装Microsoft的Procmon
    如何在Ubuntu 20.04上安装Wine 5.0
    如何在Kali Linux 2020中启用SSH服务
    如何在Ubuntu 20.04 LTS Focal Fossa上安装Apache Groovy
    如何使用命令在Ubuntu 20.04 Linux上安装Vmware Tools
    在Ubuntu 20.04 LTS Focal Fossa上安装Zabbix Agent
    hdu 2089 不要62
    hdu 2093 成绩排名
    hdu 2104 hide handkerchief
    leetcode147对链表进行插入排序
  • 原文地址:https://www.cnblogs.com/zhangtu/p/14492281.html
Copyright © 2011-2022 走看看