iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java抛出异常的几种情况小结
  • 355
分享到

java抛出异常的几种情况小结

2024-04-02 19:04:59 355人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1. 编译错误2.可以执行3. 抛出异常,不执行常见运行时异常:常见非运行时异常:Java中异常问题(异常抛出后是否继续执行的问题)1. 编译错误 //代码1 public

1. 编译错误


//代码1
public static void test() throws Exception  {
 
    throw new Exception("参数越界"); 
    System.out.println("异常后"); //编译错误,「无法访问的语句」
}

2.可以执行


//代码2
try{
    throw new Exception("参数越界"); 
}catch(Exception e) {
    e.printStackTrace();
}
System.out.println("异常后");//可以执行

3. 抛出异常,不执行


//代码3
if(true) {
    throw new Exception("参数越界"); 
}
System.out.println("异常后"); //抛出异常,不会执行

总结 :

  • 若一段代码前有异常抛出,并且这个异常没有被捕获,这段代码将产生编译时错误「无法访问的语句」。如代码1
  • 若一段代码前有异常抛出,并且这个异常被try…catch所捕获,若此时catch语句中没有抛出新的异常,则这段代码能够被执行,否则,同第1条。如代码2
  • 若在一个条件语句中抛出异常,则程序能被编译,但后面的语句不会被执行。如代码3

另外总结一下运行时异常与非运行时异常的区别:

  • 运行时异常是RuntimeException类及其子类的异常,是非受检异常,如NullPointerException、IndexOutOfBoundsException等。由于这类异常要么是系统异常,无法处理,如网络问题;
  • 要么是程序逻辑错误,如空指针异常;JVM必须停止运行以改正这种错误,所以运行时异常可以不进行处理(捕获或向上抛出,当然也可以处理),而由JVM自行处理。Java
  • Runtime会自动catch到程序throw的RuntimeException,然后停止线程,打印异常。
  • 非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类,是受检异常。非运行时异常必须进行处理(捕获或向上抛出),如果不处理,程序将出现编译错误。一般情况下,api中写了throws的Exception都不是RuntimeException。

常见运行时异常:

常见非运行时异常:

Java中异常问题(异常抛出后是否继续执行的问题)


public static void test() throws Exception  {
        throw new Exception("参数越界");
        System.out.println("异常后"); //编译错误,「无法访问的语句」
    }

//代码2
//异常被捕获,日志打印了异常,代码继续执行
        try{
            throw new Exception("参数越界");
        }catch(Exception e) {
            e.printStackTrace();
        }
        System.out.println("异常后");//可以执行

//psvm   快捷键
    public static void main(String[] args) {
        try {
            test();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    public static void test() throws Exception  {
        //代码3
        if(true) {
            throw new Exception("参数越界");
        }
        System.out.println("异常后"); //抛出异常,不会执行
    }

public static void test() throws Exception  {
        //代码4
        try {
            int i=1/0;
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception("代码执行异常后打印并抛出异常提示");
        }
        System.out.println("异常后"); //抛出异常,不会执行
    }   
 
//打印日志
java.lang.ArithmeticException: / by zero
 at zmc.eter.etern.text.text.test(text.java:23)
 at zmc.eter.etern.text.text.main(text.java:14)
java.lang.Exception: 代码执行异常后打印并抛出异常提示
 at zmc.eter.etern.text.text.test(text.java:26)
 at zmc.eter.etern.text.text.main(text.java:14)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

--结束END--

本文标题: java抛出异常的几种情况小结

本文链接: https://www.lsjlt.com/news/137311.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java抛出异常的几种情况小结
    目录1. 编译错误2.可以执行3. 抛出异常,不执行常见运行时异常:常见非运行时异常:Java中异常问题(异常抛出后是否继续执行的问题)1. 编译错误 //代码1 public ...
    99+
    2024-04-02
  • MySQL索引失效的几种情况小结
    目录1.最左前缀原则2. 计算、函数使索引失效3. 类型转换导致索引失效4. 不等于(<>或!=)导致索引失效5. is not null /is null可能不走索引,也可以走索引6. 模糊匹配Like以%...
    99+
    2023-03-20
    MySQL索引失效 数据库索引失效
  • javascript深拷贝的几种情况总结
    在前端项目的数据处理中,json数据的拷贝是很常见的,怎么使拷贝的双方数据之间互不影响,这就要用到深拷贝了 深拷贝:引用数据类型中名存在栈内存中,值存在于堆内存中,但是栈内存会提供一...
    99+
    2024-04-02
  • springboot启动后卡住无日志的几种情况小结
    目录1.场景复现1.1 说一下比较通用常见的场景1.2 不太常见的场景2.解决思路总结一下,出现的问题场景今天分享一下springboot启动后无日志的问题。 1.场景复现 spri...
    99+
    2024-04-02
  • Java 异步实现的几种方式小结
    Java 异步实现的几种方式 1. jdk1.8之前的Future jdk并发包里的Future代表了未来的某个结果,当我们向线程池中提交任务的时候会返回该对象,可以通过future...
    99+
    2024-04-02
  • JavaScript中内存泄漏的几种情况总结
    目录1.循环引用2.定时器未清除3.DOM元素未正确删除4.全局变量未清除5.闭包未正确使用6.事件未正确解绑7.大量数据未及时清理8.使用了第三方库或框架JavaScript 中的...
    99+
    2023-05-19
    JavaScript发生内存泄漏情况 JavaScript内存泄漏解决方法 JavaScript内存泄漏
  • 深入理解java的异常情况
    目录什么是异常?异常的存在形式Java异常体系异常的分类运行时异常编译时异常错误 Error编译时异常和运行时异常的区别常见的异常防御式编程Java处理异常的语法异常抛出—throw...
    99+
    2024-04-02
  • npm install安装报错的几种常见情况
    目录第一种情况:2、第二种情况3、第三种情况4、第四种情况5、第五种情况总结解决办法: 第一种情况: 直接删掉项目中的node_modules文件夹和package-lock.jso...
    99+
    2024-04-02
  • java抛出异常的方式有哪些
    在Java中,可以通过以下方式抛出异常:1. 使用throw语句手动抛出异常。可以使用throw关键字将一个异常对象抛出,例如:``...
    99+
    2023-09-15
    java
  • Pandas含中文表格对齐输出的几种情况
    目录1.初始情况2.pandas显示设置3.Sublime字体设置4.其他pandas显示设置总结1.初始情况 文本编辑器 :Sublime Test3 因为表格有中文的关...
    99+
    2023-05-18
    pandas输出表格列右对齐 pandas 对齐 pandas数据对齐
  • php7异常或出错的情况怎么解决
    这篇文章主要讲解了“php7异常或出错的情况怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php7异常或出错的情况怎么解决”吧!首先,让我们来了解一下PHP中的异或运算符(^)。异或...
    99+
    2023-07-05
  • java如何抛出适合抽象的异常
    这篇文章主要介绍java如何抛出适合抽象的异常,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!抛出适合抽象的异常抛出的异常应该与调用者执行的任务有联系。此项介绍异常转换(捕获异常并抛出另一个)和异常链(将异常包装在新的...
    99+
    2023-06-27
  • Java程序异常处理的特殊情况
      1、不能在finally块中执行return,continue等语句,否则会把异常“吃掉”;  2、在try,catch中如果有return语句,则在执行return之前先执行finally块  请大家仔细看下面的例子:以下是引用片段:...
    99+
    2023-06-03
  • springboot中的css样式显示不出了的几种情况
    目录springboot中的css样式显示不出一.被springMVC拦截没写静态释放(对应全部页面css没有)二.自己构造了拦截器(对应部分页面css没有)三.以上都查了Sprin...
    99+
    2022-11-13
    springboot不显示css样式 css样式不显示 springboot css样式
  • java手动抛出异常的方法是什么
    在Java中,可以使用`throw`关键字手动抛出异常。具体的用法是在代码中使用`throw`关键字,后跟一个`Exception`...
    99+
    2023-09-27
    java
  • Java 常见的几种内存溢出异常的原因及解决
    目录堆内存溢出原因:解决方案:栈内存溢出原因:解决方案:方法区和运行时常量池内存溢出原因:本机直接内存溢出原因:解决方案:元空间内存溢出原因:解决方案:内存溢出的异常有很多,并且每种...
    99+
    2024-04-02
  • Redis command timed out两种异常情况的解决方式
    目录Redis command timed out解决:总结Redis command timed out SpringBoot项目引入Redis后发现偶尔会出现连接会超时Redis...
    99+
    2023-05-14
    redis command timed out redis command timed out解决
  • java内存溢出的四种情况是什么
    这篇文章主要介绍了java内存溢出的四种情况是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java内存溢出的四种情况是什么文章都会有所收获,下面我们一起来看看吧。1、堆溢出,堆是存放实例对象的,但是这样堆...
    99+
    2023-06-30
  • JAVA常见的运行异常有哪几种
    在Java中,常见的运行时异常有以下几种: NullPointerException(空指针异常):当程序试图访问一个空对象的属性...
    99+
    2024-02-29
    JAVA
  • Kafka中如何处理消费者异常退出的情况
    Kafka中处理消费者异常退出的情况通常需要通过配置合适的参数和监控机制来解决。下面是一些常见的处理方法: 使用自动提交偏移量:...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作