首页 > 编程语言 >JAVA异常处理及分类

JAVA异常处理及分类

时间:2023-12-25 15:35:06浏览次数:27  
标签:JAVA 处理 抛出 分类 SomeException throw 异常 throws

Java 异常处理是一种机制,用于在程序执行过程中处理错误和异常情况。异常是指在程序运行时发生的不正常情况,可能导致程序的中断或错误输出。在 Java 中,异常是通过对象来表示的,它们属于 java.lang 包。异常处理的目标是在程序发生异常时,能够以一种有序的方式进行处理,防止程序因异常而崩溃。

异常的分类

Java 中的异常分为两大类:编译时异常(Checked Exception)和运行时异常(Unchecked Exception)。

  1. 编译时异常(Checked Exception):
  • 这些异常在编译阶段就会被检查到,程序在编译时必须对它们进行处理,否则无法通过编译。
  • 例如:IOExceptionClassNotFoundException
  1. 运行时异常(Unchecked Exception):
  • 这些异常通常是由程序逻辑错误引起的,编译器不会强制程序员去捕获或处理它们。
  • 例如:NullPointerExceptionArrayIndexOutOfBoundsException

异常的处理方式

在 Java 中,异常的处理方式主要有两种:使用 try-catch 块捕获异常,或者使用 throws 关键字声明方法可能抛出的异常。

  1. try-catch 块:
try {
    // 可能抛出异常的代码
} catch (ExceptionType1 e1) {
    // 处理 ExceptionType1 类型的异常
} catch (ExceptionType2 e2) {
    // 处理 ExceptionType2 类型的异常
} finally {
    // 不论是否发生异常,都会执行的代码块
}
  1. throws 关键字: 在方法声明中使用 throws 关键字可以指定该方法可能抛出的异常,由调用者负责处理。
public void myMethod() throws SomeException {
    // 可能抛出 SomeException 异常的代码
}

throw 和 throws 的区别

  1. throw:
  • throw 用于在代码块中手动抛出一个异常对象。
  • 例如:throw new SomeException("This is an exception");
  1. throws:
  • throws 用于在方法声明中指定可能抛出的异常类型,告诉调用者需要处理这些异常。
  • 例如:public void myMethod() throws SomeException { }

总体来说,throw 用于在代码中抛出异常,而 throws 用于声明方法可能抛出的异常,由方法的调用者负责处理。

标签:JAVA,处理,抛出,分类,SomeException,throw,异常,throws
From: https://blog.51cto.com/u_16466456/8968995

相关文章

  • 【flink番外篇】5、flink的window(介绍、分类、函数及Tumbling、Sliding、session窗口
    Flink系列文章一、Flink专栏Flink专栏系统介绍某一知识点,并辅以具体的示例进行说明。1、Flink部署系列本部分介绍Flink的部署、配置相关基础内容。2、Flink基础系列本部分介绍Flink的基础部分,比如术语、架构、编程模型、编程指南、基本的datastreamapi用法、四大基......
  • Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL synta
    问题描述Causedby:java.sql.SQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'orderwherestatus!='已完成''atline1问题解决最后发现时因为......
  • jmeter 压力机端口不够用Response code:Non HTTP response code: java.net.NoRouteToH
    四  压测机异常,修改配置后重试Responsecode:NonHTTPresponsecode:java.net.NoRouteToHostException原因:Jmeter发压机的端口不够用解决办法:1.netstat|grepTIME_WAIT|wc-l查看目前处在TIME_WAIT状态的值大不大2.检查系统sysctl中配置项:(/etc/sysctl.conf)net.ipv4.t......
  • Java操作Word修订功能:启用、接受、拒绝、获取修订
    Word的修订功能是一种在文档中进行编辑和审阅的功能。它允许多个用户对同一文档进行修改并跟踪这些修改,以便进行审查和接受或拒绝修改。修订功能通常用于团队合作、专业编辑和文件审查等场景。本文将从以下几个方面介绍如何使用免费工具FreeSpire.DocforJava在Java程序中操作W......
  • 参与循环的正则表达式可能导致异常
    问题描述:批量上传图片后,我们希望获取每一个图片的名字letreg=/(.+)\.(jpg|png|gif|jpeg|webp)/gi; //作为全局变量functioninfo(){letimgInfo=reg.exec(file.name)//这是在循环方法里。然后就出错了。file.name是能获取的,但是经过 reg.exec()处理要得到结果时......
  • Ubuntu 20.04 设置开机自启脚本启动java程序
    1)cp/lib/systemd/system/rc-local.service/etc/systemd/system2)修改/etc/systemd/system/rc-local.service,在该文件的最底部添加(可用vi/etc/systemd/system/rc-local.service命令)[Install]WantedBy=multi-user.targetAlias=rc-local.service3)创建/etc/rc.lcoal文件(vi/etc/rc.l......
  • javaCC链1
    cc1链jdk:jdk1.8.0_65commons-collections3.2.1cc1链起点是commons-collections包的Transformer接口,这个接口的transform方法接收一个对象作为参数packageorg.apache.commons.collections;publicinterfaceTransformer{Objecttransform(Objectvar1);}所以我们......
  • Java外部类和内部类
    一:外部类:平时定义的类二:内部类:一般情况下,类和类之间是相互独立的,内部类可以理解为打破了这种独立,让一个类成为了一个类的内部信息,和成员变量成员方法同级。所以创建内部类的时候要在外部类里面创建,不可以跳出外部类的大括号。同样内部类作为一个类也可以定义变量和方法  ......
  • java alibaba fastjson自定义序列化反序列化(教你解决问题思路)
    大家版本不一样方式可能不一样,我不管你的fastjson版本是哪个,按照我这个思路去弄就行写一个JSONObject类,导入fastjson的JSONObject,然后CTRL+鼠标左键点进去看JSONObject源码,然后点击IDEA的左上角selectopenedfile来定位到当前打开的文件。然后看当前目录这边可以看到上面有个Seria......
  • 史上最坑爹的Java代码:Hello, World!
    大家好!我是老码农。《码农说》公众号的第一篇文章我们先从:Hello,World!聊起!Hello,World!Hello,World!是很多Java开发人员写的第一程序,可就是这第一个程序,就把我们华丽丽带到了沟里。(其实也不怪咱们开发人员,主要是好多教材的第一个程序都是Hello,World!)一日掉沟里,很多年还一直......