首页 > 编程知识 正文

java敏感异常有哪些,java所有异常都必须捕获

时间:2023-05-03 14:42:27 阅读:156125 作者:4439

Java程序不能正常运行的现象称为执行错误,根据其性质可以分为错误(Error )和异常(Exception )两类。 他们有共同的父母类。 是所有异常的顶级父类。 是可写的。

异常类结构

错误发生器

错误(Error )由JVM生成,不经过处理就被丢弃; 无论代码或执行的操作如何,这些错误通常都是虚拟机中出现的相对严重的问题,程序本身无法解决(常见的错误包括死周期、内存泄漏等)。

一个常见的错误是Java虚拟机错误“VirtualMachineError”。 当JVM不再有继续操作所需的内存资源时,会发生这种情况。 出现这些异常时,Java虚拟机(JVM )通常会选择终止线程。

表达式

Exception (异常)用作一个对象,由Java程序丢弃或处理通常导致异常的原因是代码或调用代码错误、操作系统资源不可用以及公共语言运行库意外

例外包括虚拟机生成的运行时异常(例如RuntimeException、空指针或数组越界)和程序(如IOException )的意外非运行时异常。

运行时异常:程序可以选择捕获处理,也可以不处理直接舍弃; 常见的运行时异常包括算法溢出(超出数字表示的范围)、除数为零、内存溢出、空指针和无效参数。 这种异常是程序本身的编程错误,通过调整异常代码的执行方向,可以在正常结束之前继续执行程序。

非运行时异常: RuntimeException类型的意外异常都称为非运行时异常,是必须从程序语法的角度进行处理的异常,对于不处理就无法编译程序的一般非运行异常,称为IOException 例如,程序遇到意外情况(如找不到资源文件)而无法成功执行。

:注意异常和错误的区别---异常可以由程序自己处理,错误不能处理。

可以调查异常,不能调查异常

根据程序是否可以编译,Java异常(ErrorandException )可以分为其他两类。 可检查异常(checkedexceptions )和不可检查异常(uncheckedexceptions )。

可以调查异常

可检查的异常:对于非运行时异常,可以检查编译器编译程序时可能出现的错误。 这个例外需要处理。 有两种处理方法。 try-catch语句捕获异常,或者throws子句声明抛出异常,并在方法的体外头部声明异常类型。 (使用throws抛出Exception。 调用者可以选择处理收到的异常。

说到这两个处理方式,说到Java异常处理的5个关键词,就是try、catch、finally、throws、throw

1、使用try-catch语句处理捕获(方法的开头可以不声明) ) )。

try、catch和finally这三个语句块不能单独出现。 三者可以与try-catch/try-catch-finally/try-finally组合使用。

可以有多个catch块,在这种情况下,从上到下只匹配了一个catch块码;

finally最多为一个,在三个语句块中定义的变量不能相互访问。

本节使用try-catch组合来处理可检查的异常,并将异常向上抛出。 示例:

publicxmlreaderhdu (字符串xmlfile )。

super (;

this.xmlFile=xmlFile;

this.filename=static config.umlpathprefixhdu;

托里

{

SAXReader reader=new SAXReader (;

document DOM=reader.read (xmlfile );

root=dom.getRootElement (;

}

catch(exceptionE1 ) )。

{

Handle1……

}

catch(exceptionE2 ) )。

{

Handle1……

}

}

2、使用throws子句声明慢速(使用throws抛出Exception ) ) ) ) ) ) ) ) ) ) ) )。

首先,方法体内部使用throw抛出异常;

然后方法在体外头部宣告,使用throws抛出内掷异常;

示例1:try-catch抛出异常

publicxmlreaderhdu (string xmlfile ) throws Exception {

super (;

this.xmlFile=xmlFile;

this.filename=static config.umlpathprefixhdu;

托里

{

SAXReader reader=new SAXReader (;

document DOM=reader.read (xmlfile );

root=dom.getRootElement (;

}

catch(exceptionE1 ) )。

{

thrownewexception(E1;

}

}

示例2:throw-throws自定义异常

privatelistreaducinformation { } throws exception

if(E1.Hascontent ) )

{

if(E1.element('name ).getText ) ).equals (' pre condition ) ) }

UC.set pre condition (E1.element text ) (content );

} else{

throw new Exception ('获取用例约束条件异常,可能的原因:约束条件类型或约束条件名称错误');

}

}

}

不要调查异常

无法查找的异常:包括错误Error和运行时异常运行时扩展

运行时异常可以在程序编译时通过,不能用静态语法检测出哪个函数有可能抛出异常,而是可以在运行时发现异常(即依赖于运行时状态,由运行状态决定)。

可以选择捕获处理或显示的“删除处理”(mustbecaughtordeclearedtobethrown )。 这些异常一般起因于程序的逻辑错误,程序在逻辑上应该尽量避免这种异常的发生。

总结

以上是本文关于解析Java异常基础知识的全部内容,希望对大家有帮助。 感兴趣的请继续参考本网站的其他相关主题。 如果有不足的地方,欢迎评论。 感谢朋友们对本站的支持!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。