java如何进行异常处理_JAVA 异常处理小技巧

java如何进行异常处理_JAVA 异常处理小技巧1、异常:就是程序运行时出现不正常情况异常由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述。并封装成对象。其实就是java对不正常情况进行描述后的对象体现。对于问题的划分(两种):一种是严重的问题,一种是非严重的问题;对于严重的,java通过Error类进行描述。对于Error一般不编写针对性的代码对其进行编写对于非严重的,java通过Exception类进行描述。对于…

大家好,又见面了,我是你们的朋友全栈君。

1、异常:就是程序运行时出现不正常情况

异常由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述。并封装成对象。其实就是java对不正常情况进行描述后的对象体现。

对于问题的划分(两种):一种是严重的问题,一种是非严重的问题;

对于严重的,java通过Error类进行描述。

对于Error一般不编写针对性的代码对其进行编写

对于非严重的,java通过Exception类进行描述。

对于Exception可以使用针对性的处理方式进行处理

无论Error还是Exception都具有一些共性内容

Throwableb6dc2a9476e2ab86b30c810fac876958.png

2、异常的处理

java 提供了特有语句进行处理。1bcdeafd31ca01a54d419d1985fe62bc.png

3、对捕获到的异常对象常见方法操作

String getMessage( ):捕获异常信息。

在函数上声明,让调用出进行处理,不处理则编译失败。

对多异常的处理

1、声明异常时,建议声明更为具体,这样处理的可以更具体。

2、对方声明几个异常,就对应有几个catch块,不要定义多余的catch块。

如果多个catch块中的异常出现继承关系,父类异常catc块放在最下面。

建议:

在进行catch处理时,catch中一定要定义具体处理方式,也不要简单的就写一条输出语句。

当在函数内部出现了throw抛出异常对象,那么就必须要给对应的处理动作:

要么在内部try catch处理,要么在函数上声明让调用者处理。

一般情况在函数内部出现异常,函数上需要声明。

发现打印的结果中只有异常的名称,却没有异常的信息,那么如何定义异常信息呢?

因为父类中已经把异常信息的操作都完成了,所以子类只要在构造时,将异常信息传递给父类通过super语句,那么

就可以直接通过getMessage方法获取自定义的异常信息。

自定义异常:

定义类继承Exception或者RuntimeException

1、为了让该类自定义类具备可抛性。

2、让该类具备操作异常的共性方法。978043ab5c55a3c2ef7479e735e26a3a.png

throw和throws的区别:throw使用在函数上,throws使用在函数内。throws后面跟的异常类,可以跟多个,用“ ,”隔开

throw后跟的是异常对象。

当函数内容有throw抛出异常对象,并未进行try处理,必须要在函数上声明,都在编译失败。

注意:RuntimeException除外,也就是说,函数内如果抛出的RuntimeException异常,函数可以不用声明。

如果函数声明了异常,调用者需要进行处理,处理方法可以throws,可以try。

finaly{ } //存放的是一定对被执行的代码 通常用于关闭资源。

finally中定义的通常是 关闭资源代码。因为资源必须释放。

finally只有一种情况不会执行,当执行到System.exit(0);finally不会执行。

异常处理语句:c2719667e4e9fcf0b42055ee75fa97ce.png

72b3fb92ce8291bec4b79461a1c66761.png

002ccdbb6d099ba2b50befb335831ad2.png

异常的好处:1、将问题进行封装

2、将正常流程代码和问题处理代码相分离,方便于阅读。

异常的处理原则:

1、处理方式有两种:try 或者throws;

2、调用到抛出异常的功能时,抛出几个,就处理几个。

一个try对应多个catch。

3、多个catch,父类的catch放到最下面。

4、catch内,需要定义针对性的处理方式,不要简单的定义printStackTrace,输出语句。43f22cc0a369353794e6885981694a9d.png

异常的注意事项:

在子父类覆盖时:

1、子类抛出的异常必须是父类的异常的子类或者子集;

2、如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try不能抛。

帮到你的话,点个赞吧d=====( ̄▽ ̄*)b原作者姓名:胡小冰

原出处:CSDN

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144477.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java环境教程_java环境配置的详细教程(图文)

    java环境教程_java环境配置的详细教程(图文)本篇文章给大家带来的内容是关于java环境配置的详细教程(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。JAVA环境变量的配置:Path,JAVA_HOME,CLASSPATH一、右键我的电脑,属性,高级系统设置,点击环境变量二、然后就会弹出环境变量这个窗口,在系统变量编辑JAVA_HOME,如果没有就新建一个,把jkd的路径添加进去,如图三、配置CASSPATH,如果没有…

  • 标准红外遥控的接收程序-松瀚汇编源程序

    标准红外遥控的接收程序-松瀚汇编源程序

  • 自动构建(CICD)

    自动构建(CICD)Docker、Kubernetes的CICD实现思路Jenkins是一个比较流行的持续集成工具GitLab是存储镜像的镜像仓库由客户端将代码push推送到git仓库,gitlab上配置了一个webHook的东西可以触发Jenkins的构建。进入到Jenkins虚线范围内,它所做的事情非常多,从mvn构建代码,对代码进行静态分析,做单元测试,测试通过之后就可以build镜像,镜像构建成功后…

  • linux常用命令解释_vim常用命令总结

    linux常用命令解释_vim常用命令总结记住,是小写的L,表示使用列表的方式来列出目录中的内容,ls-l这是常用的命令,一般也是可以这里的/是Linux上的特殊目录,称为”根目录”,相当于windows的”此电脑”,这里的这些目录,就相当于”系统文件”他就是能告诉我们当前是在哪个目录里,因为我们在使用命令的时候,有的时候,目录是比较复杂的,容易不记得自己在哪里(迷路了)显示了当前目录所对应的绝对路径,在windows上,就是以盘符开头的路径的绝对路径,在Linux上,是以/开头(根目录)就是绝对路径cd后

  • mysql 各个版本的驱动 jar 包

    mysql 各个版本的驱动 jar 包http://central.maven.org/maven2/mysql/mysql-connector-java/

  • android 应用的证书签名跟系统签名

    android 应用的证书签名跟系统签名作为软件行业的从业者都知道,一款软件的开发过程中肯定会诞生两种版本,即debug版本和release版本,debug版本包含有调试信息,一般来说都要比release版本大,android应用当然也不例外1.证书签名并不是所有的apk文件都能成功安装到安卓设备上,android系统要求只有签名后的apk文件才可以安装,因此我们还要对生成的apk文件进行签名才行在androidstudio中直接运行项目生成的都是测试版debug安装文…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号