首页 > 其他分享 >异常处理

异常处理

时间:2023-03-11 13:56:55浏览次数:38  
标签:错误 编译 处理 程序员 异常 throw


异常处理

异常:是代码在运行时出现不正常的现象,如果不及时处理,就会出现jvm不正常的运行

 

 

 

Java 异常处理

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。

比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常。

异常发生的原因有很多,通常包含以下几大类:

  • 用户输入了非法数据。

  • 要打开的文件不存在。

  • 网络通信时连接中断,或者JVM内存溢出。

这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。-

要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:

  • 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。

  • 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。

  • 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

异常抛出机制:

  1. 不同异常用不同的异常类表示,可以自己创建异常对象,throw这个异常;

  2. 程序员也可catch这个异常对象,并处理,如果没有catch这个对象,那么该异常对象就会终止掉这个程序

如何对待异常:

  1. 遇到错误就终止程序的运行

  2. 程序员在编写程序时,就充分考虑到各种可能的发生的异常或错误,实现避免,实在无法避免,就应该编写相应的代码进行异常检测,以及处理,保证代码的健壮性。

处理异常有两种方式:

  1. 抓,try - catch - finally

  2. 抛 ,throws /throw

在开发中,运行时异常一般我们根据红线提示修改就好了,编译时异常就要用到抛和抓来处理。

throw后的代码不能被执行,编译不通过。

throw和throws的区别:

throw是使用在方法块里面的,只能抛出一个异常实例,而throws是紧跟在方法体后面的,他可以抛出多个异常,抛出的是异常的类。

自定义异常的定义:

  1. 继承于现有的异常体系,通常继承于RuntiException\Exceotion

  2. 通常提供几个重载的构造器

  3. 提供一个全局变量,声明为Stactic final long SerrialversionUID

注意:

 

 

 

标签:错误,编译,处理,程序员,异常,throw
From: https://www.cnblogs.com/jessi200/p/17205785.html

相关文章

  • 网易云歌词的处理和简单的实时显示(uni-app)
    html设置<!--歌词--><viewclass="scrollLrc"><text>{{currentLyric}}</text></view>1.在data中定义三个变量data(){re......
  • 富文本组件中图片间空白处理小技巧
    今天在网上搜索了一下,处理富文本空白的方法,各种各样的都有有一个是对富文本组件设置font-size:0的,我试了一下,唉,还真的好使,空白间隔果然没了。可是看这个设置,fontsize,一......
  • 怎么处理消息积压问题?
    消息积压是我们在使用消息队列时经常遇到的问题,它的直接原因是系统中某个部分出现了性能问题,没有来得及处理上游发送的消息。优化性能避免消息积压当我们引入消息系统后,......
  • Selenium自动化等待处理代码参考
    Selenium自动化等待隐式等待python版本self.drvier.implicitly_wait(30)java版本//隐式等待调用方式,设置等待时间为30秒driver.manage().timeouts().implicitlyWait(30,Tim......
  • .net OpenQASelenium 等待常见的处理方式
    .netSelenium等待常见的处理方式显示等待1使用Until和匿名函数的方法varwait=newWebDriverWait(driver,newTimeSpan(0,0,30));wait.IgnoreExceptionTypes(typeof......
  • 当SQLCA全局对象不使用时如何妥善处理避免误引用
    当我们有多个连接到数据库时,可能默认的链接不用sqlca。默认它还是存在,而且当我们写内嵌sql时,不用usingxxx时。会默认使用到sqlca造成难于测试的错误。(sqlca没有赋值但是被......
  • C# 调用 c++ DLLL试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B
     网上各种设置目标编译平台为x86都解决不了问题,有可能是DLL依赖的文件的位数有问题1、先查一下被调用的DLL用了那些DLLvs的开发人员工具控制台输入 dumpbin/depe......
  • 基于肤色模型和形态学处理的人脸检测算法matlab仿真
    1.算法描述        在过去的几年里,人脸识别受到了广泛的关注,被认为是图像分析领域最有前途的应用之一。人脸检测可以考虑人脸识别操作的很大一部分。根据其强度将......
  • ANSI转UTF-8编码的bat批处理脚本
    替换掉bat脚本里的a.txt即可ANSI转UTF.bat脚本内容:::注释::code1=ANSI(GB2312)::code2=Big5::code3=Shift_JIS::code4=EUC-KR::code5=UTF-8::code6=Unicode@echo......
  • 指标数据的规范化处理
    在_多指标评价体系中,由于各评价指标的性质不同,通常具有不同的量纲和数量级。当各指标间的水平相差很大时,如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中......