一、异常处理

程序运行过程中出现的,导致程序无法继续运行的错误叫做异常。

Java中有多种异常,所有异常的父类是Throwable,他主要有两个子类Error和Exception。

Error一般是JVM出现问题,不用处理,也无法处理。

Exception下有多个子类,但主要分为两种。一种是RuntimeException,这种异常可以处理也可以不处理

另一种是非RuntimeException,这种异常必须处理。

常见的RuntimeException:

1、NullPointerException   (空指针异常)

2、IndexOutOfBoundsException  (数组下标越界异常)

3、NumberFormatException  (数据格式异常)

4、ClassCastException     (类型转换异常)

5、IllegalArgumentException    (非法参数异常)

6、ArithmeticException      (算数异常)

7、IllegalStateException    (非法语句异常)

这里列举两个例子:

 NullPointerException 示例:

package None6;public class Test {int a;public int show() {return 0;}
}package None6;public class TestIt {//仅声明test,并未创建对象
    Test test;test.show();
}

这里test仅声明并未实际指向某个对象,空指针无法调用不属于他的方法,所以在后一条代码实际调用show()方法时会报空指针异常。

IndexOutOfBoundsException 示例:

package None6;public class TestIt {public static void main(String[] args) {int[] a = new int[3];a[0] = 0;a[1] = 1;a[2] = 2;a[3] = 3;}}

这里ArrayIndexOutOfBoundsException异常是IndexOutOfBoundsException异常的子类。

需要处理的异常可用try catch来处理:

package None7;public class math {public static int add(String a,String b) {int sum = Integer.parseInt(a);sum+=Integer.parseInt(b);return sum;}
}package None7;public class testit {public static void main(String[] args) {// TODO Auto-generated method stubSystem.err.println(math.add("100", "100"));}}

例如本示例中,当add()方法中的参数为数字时不会出现异常,但当参数中出现字母之类的字符时可能会抛出异常

处理办法;

package None7;public class math {public static int add(String a,String b) {try {int sum = Integer.parseInt(a);sum+=Integer.parseInt(b);return sum;} catch (Exception e) {// TODO: handle exception//打印出错信息
            System.err.println(e.getMessage());}finally{System.err.println("结束!");}return 0;}
}package None7;public class testit {public static void main(String[] args) {// TODO Auto-generated method stubSystem.err.println(math.add("100a", "100"));}}

结果为:

二、抛出异常

上面讲了,非RuntimeException异常必须处理,而我们当时如果不知道怎处理或者暂时不想处理时可用throw向上一级一级抛出,最终会抛给虚拟机处理。

示例:

结果:

这个例子中动态加载类123时,因为123类不存在所以会报错,然后将用throw将这个错误抛出。

这个错误首先抛出给主函数入口,然后再抛出给虚拟机。

如有错误,希望大家能指正,感谢!

努力努力再努力!

转载于:https://www.cnblogs.com/lemonxu/p/10349519.html

Java中的异常处理与抛出相关推荐

  1. java 异常 不抛,java中不捕获或抛出的异常

    java中不捕获或抛出的异常 发布时间:2020-06-25 14:29:16 来源:亿速云 阅读:137 作者:Leah 这期内容当中小编将会给大家带来有关java中不捕获或抛出的异常,文章内容丰富 ...

  2. java 如何捕获线程中的异常处理_如何捕获Java中另一个线程抛出的异常?

    参见英文答案 > How to catch an Exception from a thread                                    14个 我正在使用一个创建 ...

  3. 第八节:详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架

    前言 大家好,给大家带来详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架的概述,希望你们喜欢 JAVA 异常 try...catch...finally结构的使用方法 class Tes ...

  4. 【Java】Java中的异常处理:何时抛出异常,何时捕获异常?

    参考文章:Java中的异常处理:何时抛出异常,何时捕获异常? 参考文章:Python错误处理-廖雪峰的官方网站 1 异常分类 Throwable对象可以分为两组: 一组是unchecked异常,异常处 ...

  5. java中的异常处理语句_Java中实现异常处理的基础知识

    Java中实现异常处理的基础知识 异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况.许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象. 例如:数组越界和被0除. ...

  6. Java提高篇——Java中的异常处理

    对于运行时异常.错误和检查异常,Java技术所要求的异常处理方式有所不同. 由于运行时异常及其子类的不可查性,为了更合理.更容易地实现应用程序,Java规定,运行时异常将由Java运行时系统自动抛出, ...

  7. 【java基础】java异常,捕获与抛出

    java异常,捕获与抛出 1.概念: 在java里,所有的异常都有一个共同的祖先Throwable(可抛出). Throwable:有两个重要的子类:Exception(异常)和Error(错误). ...

  8. java异常处理怎么加_带你了解Java中的异常处理(上)

    当当当当当当,各位看官,好久不见,甚是想念. 今天我们来聊聊Java里的一个小妖精,那就是异常. 什么是异常?什么是异常处理? 异常嘛,顾名思义就是不正常,(逃),是Java程序运行时,发生的预料之外 ...

  9. 【Java面试题】21 Java中的异常处理机制的简单原理和应用。

    [Java面试题]21 Java中的异常处理机制的简单原理和应用. 参考文章: (1)[Java面试题]21 Java中的异常处理机制的简单原理和应用. (2)https://www.cnblogs. ...

  10. Java中的异常处理:何时抛出异常,何时捕获异常?

    Java中的异常处理:何时抛出异常,何时捕获异常? 参考文章: (1)Java中的异常处理:何时抛出异常,何时捕获异常? (2)https://www.cnblogs.com/tsiangleo/p/ ...

最新文章

  1. C++——新类型与原始字面量(原始字符串)
  2. 比特币的扩容问题:千军万马过独木桥!
  3. 互联网协议 — DNS 缓存机制
  4. 字符串转16进制字节数组,字节数组转16进制字符串
  5. 第七章:跨程序共享数据-探究内容提供器
  6. 关于安装完Node.js 出现node is not dedined 问题
  7. 拒绝假货!LVMH与普拉达、卡地亚联手推出区块链平台AURA
  8. Android 性能分析岗位,2021Android最新大厂面试真题总结,架构师必备技能
  9. JavaScript内置对象→对象、系统函数、Date日期对象、String字符串对象、Math对象、Number数字对象、Object对象、Boolean对象、Error对象
  10. PyTorch学习笔记(三):PyTorch主要组成模块
  11. 拓端tecdat|R语言时变向量自回归(TV-VAR)模型分析时间序列和可视化
  12. 组合,聚合,关联,依赖 的区别
  13. css实现接地气的checkbox框
  14. 本科最高5w!毕业生落户指南!18城市人才引进补贴
  15. c#锁定Excel工作表和单元格
  16. HDU 5285:wyh2000 and pupil
  17. 【数据结构与算法】动态规划
  18. 请问在深圳做美工的工资多少
  19. 计算机视觉学习6_棋盘格_相机模型与参数标定
  20. AI高考的信息检索策略

热门文章

  1. charts引入icon图片_如何在React中优雅的使用icon
  2. 一般家用监控多少钱_安装空调一般多少钱
  3. 力扣题目系列:1313. 解压缩编码列表
  4. 计算机仿真期末考试,2015年数学物理建模期末考试试题.docx
  5. CS224N刷题——Assignment3.2_Recurrent neural nets for NER
  6. 如何在Rancher 2.0上快速部署Datadog
  7. Nginx负载均衡与Tomcat使用Redis共享session配置
  8. PostgreSQL 11 preview - Faster partition pruning
  9. php+nginx环境 两错误解决
  10. 加速晶圆代工业务创新 开创智能互联世界