异常是程序开发中的避不开的一个问题,特别是在大型应用的开发中,为了使程序能够保持稳定的运行,即使出错的时候,也能方便开发人员的根据错误信息快速定位出错位置,这需要我们必须熟悉异常的基本知识。

Java异常中的关键字:

throw、throws、try、catch、finally。下面一段代码简单介绍这几个关键字的应用场景

/*如果方法不进行异常处理,一定要用 throws 抛出*/
public static int div(int _x, int _y) throws Exception{
    int result = 0;
    try{
        // 可能出异常的代码块
    }catch(Exception e){
        // 捕获异常并处理的代码块
        e.printStackTrace(); // 打印异常信息
        throw new Exception("异常A"); // 抛出一个自定义异常
    }finally {
        // 不管是否有异常都要执行的代码块
        return result;
    }
}

throw与throws的区别:

throw用于在一个方法内部抛出一个自己创建的异常,throws则是用在方法头的后面。用于告知该方法可能会抛出哪些异常给上层应用,注意此时上层应用必须在写代码的时候添加处理该异常的方法。

一个标准的基础Java异常处理案例:

class MyMath{
    /*如果方法不进行异常处理,一定要用 throws 抛出*/
   
public staticint div(int _x, int _y) throws Exception{
        int result = 0;
        System.out.println("【开始】进行除法计算");
        // 方式一
//        try{
//            result = _x / _y;
//        }catch (Exception e){
//            throw e;
//        }finally {
//            System.out.println("【结束】除法计算完毕");
//        }

// 方式二(简写)
        try{
            result = _x / _y;
        }finally {
            System.out.println("【结束】除法计算完毕");
        }
        return result;
    }
}

public class Main {
    public staticvoid main(String[] args) {
        try {
            System.out.println(MyMath.div(10,0));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

结果:

Exception与RuntimeException的区别:

RuntimeException的类继承关系:

java.lang.Object

java.lang.Throwable

java.lang.Exception

java.lang.RuntimeException

区别概述:

        Exception 是 RuntimeException 的父类(由上面关系知),使用 Exception 定义的异常都要去必须使用异常处理。
        RuntimeException 可以由用户选择性的来进行异常处理。

常见的 RuntimeException 有:

ClassCastException:            类型转换异常
IndexOutOfBoundsException:索引越界
        NoSuchElementException:   没有这个元素
        NullPointerException:     空指针异常

自定义异常:

直接继承 Exception 或者是 RuntimeException 即可。不过注意命名的时候后面一定要加上 Exception 这样做更加规范。

JAVA中的异常使用相关推荐

  1. 深入探讨Java中的异常与错误处理

    Java中的异常处理机制已经比较成熟,我们的Java程序到处充满了异常的可能,如果对这些异常不做预先的处理,那么将来程序崩溃就无从调试,很难找到异常所在的位置.本文将探讨一下Java中异常与错误的处理 ...

  2. Java中的异常和处理详解

    Java中的异常和处理详解 参考文章: (1)Java中的异常和处理详解 (2)https://www.cnblogs.com/lulipro/p/7504267.html 备忘一下.

  3. 完成这个例子,说出java中针对异常的处理机制。

    有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个方法a,请在这个方法中调用b,然后抛出异常.在客户端有一个类为TestC,有一个方 ...

  4. JAVA中的异常的触发_java中的异常

    在日常的程序开发中难免会出现遗漏并且就算代码没有问题可是由于程序运行环境的内存不够了,磁盘满了,网络连接问题等这些非正常的情况在java中都称之为异常.在java中对异常的处理有统一的异常处理机制,今 ...

  5. Java中的异常 Exception

    Java中的异常 Exception java.lang.Exception类是Java中所有异常的直接或间接父类.即Exception类是所有异常的根类. 比如程序: public class Ex ...

  6. java中的异常种类和区别以及处理机制和区别

    java中的异常种类和区别以及处理机制和区别 按照异常需要处理的时机分为编译时异常(也叫强制性异常)也叫 CheckedException 和运行时异常(也叫非强制性异常)也叫 RuntimeExce ...

  7. Java 中的异常和处理详解

    2019独角兽企业重金招聘Python工程师标准>>> 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退 ...

  8. Java中测试异常的多种方式

    Java中测试异常的多种方式 参考文章: (1)Java中测试异常的多种方式 (2)https://www.cnblogs.com/huang0925/p/3663074.html 备忘一下.

  9. JAVA中常见异常小结

    JAVA中常见异常小结 参考文章: (1)JAVA中常见异常小结 (2)https://www.cnblogs.com/lq147760524/p/6926175.html (3)https://ww ...

  10. java exception 包_什么是Java中的异常包装?

    Java中的异常包装是什么? 在异常处理中有什么用? 它与异常传播有何不同? Exception wrapping is when you catch an exception, wrap it in ...

最新文章

  1. 1小时学会:最简单的iOS直播推流(四)如何使用GPUImage,如何美颜
  2. log4j配置和使用
  3. git merge 和 git rebase详解
  4. centos 日志切割_centos 创建 logrotate 进行日志分割
  5. python 匹配字符串多个_Python:匹配字符串中的多个子字符串
  6. ManicTime软件破解
  7. 黄聪:走进wordpress 详细说说template-loader.php
  8. 问题 G: 三个数比较大小
  9. Javascript + Servlet的鸿沟如何抹平以构建富客户端应用?[SOS]
  10. python装饰器是什么意思_对Python装饰器的理解
  11. 数据结构与算法 第二章 数据结构中的线性结构
  12. 检测到您尚未安装ALEXA工具条
  13. Android中的App网络传输协议
  14. 计算机快速启动BIOS,bios设置快速启动
  15. excel 将两列数据合并,以逗号分隔
  16. JS网页禁用右键- JS禁用网页右键
  17. 答疑解惑!社招与校招有什么区别?
  18. 机器学习项目入门篇:一个完整的机器学习项目
  19. 查看LINUX放开端口,linux如何查看端口是否开放?
  20. ThinkPad E40 XP 安装SATA/AHCI驱动

热门文章

  1. pch在c语言中占内存字节数,c语言期末测试题(附答案)
  2. 今晚八点 | 追问研讨会:我们如何建立更好的精神疾病模型?
  3. 重磅!2021 高通人工智能应用创新大赛今日开赛
  4. 机器翻译中丢掉词向量层会怎样?
  5. 如何阅读AI顶会论文,搭建深度学习知识体系框架?
  6. 清华大学人工智能研究院知识智能研究中心成立
  7. 直播预告 | 亚马逊高级应用科学家熊元骏:人类行为理解研究进展
  8. 爬虫笔记9实例股票数据
  9. 西安电子科技大学第16届程序设计竞赛 E题
  10. MyBatis——[注解方式]一对多查询DEMO