目录

运行期异常

编译期异常

throw


Erro 错误,严重性问题,你无法去捕获处理 比如内存溢出了

Exception 一般性问题,一般我们可以自己去捕获处理

编译期异常:发生在编译期间,非RuntimeException及其子类,必须解决,

运行期异常:RuntimeException及其子类 发生在运行期间,可以解决也可以不解决

运行期异常

//运行期异常:发生在运行期间,RuntimeException及其子类都是运行期异常,可以解决也可以不解决int a = 1;int b = 0;System.out.println(a / b);//运行期异常,如果你自己没有捕获处理,那是交由JVM,来进行默认处理.//JVM默认处理异常的方式,是打印异常的堆栈信息,然后退出JVM//很显然,JVM 默认处理异常的方式不够友好,如果想要更加友好,我们可以自己捕获异常去处理。System.out.println("下面的代码");System.out.println("下面的代码");System.out.println("下面的代码");  //执行不了

处理异常

        int a = 1;int b = 0;try {//他里面放的是有可能会出现问题的代码System.out.println(a / 0);} catch (ArithmeticException e) { //ArithmeticException你要捕获的何种异常。//处理异常的逻辑,必须写,哪怕就是以后输出语句,不要空处理System.out.println("除数为0了");}//我们自己如何来处理运行期异常System.out.println("下面的代码");System.out.println("下面的代码");System.out.println("下面的代码"); //除数为0了下面的代码下面的代码下面的代码
        int a = 1;int b = 0;int[] arr = {1, 2};try {System.out.println(a / b); //捕获住这个System.out.println(arr[3]); //就不再执行这个} catch (ArithmeticException e) {System.out.println("除数为0");e.printStackTrace(); //打印详细的堆栈信息} catch (ArrayIndexOutOfBoundsException e) {System.out.println("角标越界了");e.printStackTrace(); //打印详细的堆栈信息} catch (Exception e) {System.out.println("发生异常了");e.printStackTrace(); //打印详细的堆栈信息}System.out.println("下面的代码");System.out.println("下面的代码");System.out.println("下面的代码");除数为0
下面的代码
下面的代码
下面的代码
java.lang.ArithmeticException: / by zeroat org.slxy.demo.Demo01.MyTest.main(MyTest.java:11)

编译期异常

编译期异常:发生在编译期间,非RuntimeException及其子类

编译期异常,必须解决,不解决程序无法执行。

编译期异常处理方式:

1.向上抛出,抛给调用者,谁调用,谁处理,俗称甩锅。

2.自己try 捕获处理

try {
            MyDateUtils.test();
        } catch (ParseException e) {
            e.printStackTrace();
        }

finally {
            //一般有些善后工作,需要做,就可以放到finallys
            System.out.println("finally里面的代码,就是不管你有没有发生异常,都会执行");
        }

finally的作用:    用于释放资源

throw

在方法内部进行抛出

public class MyTest {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入第一个整数");int a = sc.nextInt();System.out.println("请输入第二个整数");int b = sc.nextInt();int r = chufa(a, b);System.out.println(r);}private static int chufa(int a, int b) {if (b == 0) {//在方法内部进行异常的抛出throw new ArithmeticException("除数为0");} else {return a / b;}}
}

自定义异常

//自定义的异常类,纳入到Java异常体系
public class ScoreException extends RuntimeException {public ScoreException() {}public ScoreException(String message) {super(message);}
}public class MyTest {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请录入你的成绩 0---100");int score = sc.nextInt();int cj = inputScore(score);System.out.println(cj);}private static int inputScore(int score) {if (score >= 0 && score <= 100) {return score;} else {throw new ScoreException("成绩不合法");}}
}

1.子类在重写父类方法时,父类方法没有抛出异常,子类不能抛出异常

2.父类方法有抛出异常,子类在重写父类方法时可以抛出和父类一样的异常,也可以不抛出

3.父类方法有抛出异常,子类在重写父类方法时可以抛出异常,但是异常不能比父类大

Java小记——异常机制相关推荐

  1. java的异常机制面试题(转)

    java的异常机制面试题(转) 参考文章: (1)java的异常机制面试题(转) (2)https://www.cnblogs.com/ffaiss/p/11434639.html 备忘一下.

  2. 聊聊Java的异常机制问题

    本文分享自华为云社区<Java知识点问题精选之异常机制>,原文作者:breakDraw . java异常指在程序运行时可能出现的一些错误,如:文件找不到.网络连接失败.非法参数等.异常是一 ...

  3. 简述java的异常机制_JAVA异常机制简述

    1.类的继承结构 在JAVA所有的异常对象都是Throwable类的一个子类的实例 Exception包含两个分支,由于程序错误导致的异常属于RuntimeException,比如数组下标越界,空指针 ...

  4. Java基础-异常机制

    异常( Exception 也称例外)就是在程序的运行过程中所发生的不正常的事件,它会中 断正在运行的程序 所需文件找不到 网络连接不通或中断 算术运算错 (被零除-) 数组下标越界 装载一个不存在的 ...

  5. CC00069.bigdatajava——|Java集合类库.V05|——|Java.v05|异常机制.v50|异常抛出|补充|

    一.异常抛出 ### --- 基本概念--> 在某些特殊情况下有些异常不能处理或者不便于处理时, --> 就可以将该异常转移给该方法的调用者,这种方法就叫异常的抛出. --> 当方法 ...

  6. java 异常机制_深入理解Java异常处理机制

    一.引子 try-catch-finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的"教训"告诉我,这个东西可不是想象中 ...

  7. 异常处理器详解 Java多线程异常处理机制 多线程中篇(四)

    在Thread中有异常处理器相关的方法 在ThreadGroup中也有相关的异常处理方法 示例 未检查异常 对于未检查异常,将会直接宕掉,主线程则继续运行,程序会继续运行 在主线程中能不能捕获呢? 我 ...

  8. Java异常之异常机制

    2019独角兽企业重金招聘Python工程师标准>>> Java异常处理机制依赖5个关键字try,catch,finally,throw,throws.try关键字后跟着可能出现异常 ...

  9. Java基础:异常机制

    最近开始了找工作的面试,在面试过程中,面试官问了关于Java当中的异常处理机制,一直以来,无论写代码还是看书,自己对异常处理这一块就没有很好的重视过,对它的认知也仅仅停留在通过Try-catch去进行 ...

最新文章

  1. CSS将长文字换行的方法 (转)
  2. Leangoo阶段式(瀑布式)游戏产品研发
  3. SpringMVC如何实现restful接口
  4. 一个普通摄像头就让二次元老婆“活”了过来,网友:求收费
  5. 报错,can‘t found the source action, can‘t run the graph[fatal.flow]
  6. [Python+debug] 设置Python环境变量-Windows10
  7. 点至直线的距离和垂足点计算
  8. android 方法不会覆盖或实现超类型的方法,React Native Android:方法不会覆盖或实现超类型的方法...
  9. php openoffice,php实现openoffice转pdf的方法
  10. 获取中国各省市区县经纬度的方法
  11. 解决 CAP_IMAGES: can‘t find starting number (in the name of file)
  12. 解决RequestMapping写在类上页面跳转失败
  13. 为什么输入法显示中文打不出中文_搜狗中文输入无法显示汉字怎么办_win10搜狗输入法打不出汉字的解决方法...
  14. mPaas苹果客户端离线包引入http的js白屏问题解决办法
  15. 分享个免费的图文识别orc接口
  16. 如何检查Linux系统下的Virtio 驱动
  17. 软件的升级及卸载原理
  18. 【数据结构(2)】1.2 数据结构的基本概念和术语
  19. pgbouncer 使用
  20. 赌王(比赛2第三题)

热门文章

  1. chrome浏览器怎么开启高性能模式
  2. 基于esp32-cam的监控小车
  3. 【JVM学习笔记】运行时数据区
  4. Pytorch基础——torch.randperm
  5. Leetcode 998
  6. 阿里云第七代ECS现已上线
  7. 中国oracle考试认证考点查询网站
  8. 片选,怎么看时序图,电路原理图。CE OE WE信号 纳秒
  9. 计算机的模拟电路基础
  10. JS点击灯泡变亮(学自W3school)