什么是java的异常处理机制,java中异常处理机制的原理和应用

  什么是java的异常处理机制,java中异常处理机制的原理和应用

  本文给大家带来一些java的知识,包括异常处理机制的原理和应用,包括异常和错误,trycatch语法,trycatch执行序列等等。希望对你有帮助。

  如何解决写爬虫IP受阻的问题?立即使用。

  

一、Java异常简介

  大家可能对trycatch不陌生,使用起来都很熟练。

  当程序运行过程中出现错误时,就会抛出异常。抛出一个异常比终止程序要好。

  也可以在知道要出错的时候执行trycatch操作,在异常的时候执行一些特殊的操作。

  

1、Exception和Error

  异常和错误继承自Throwable类。在Java中,只能抛出或捕获Throwable类型的实例,这是异常处理机制的基本组件类型。

  异常是可预测的异常,可以在业务之外获得和处理。

  Error是一个意外的异常,当它发生时,会直接导致JVM无法管理。

  异常可分为检查性异常和非检查性异常。

  要检查性异常,在编写代码时必须使用try catch(例如IOException异常)。

  检查非异常,编译器不会发现这个地方是否会产生一次,比如空指针异常,这是可以在代码编写或使用时通过规范避免的。例如,sts的findbugs函数可以检测代码的空指针异常。

  

2、NoClassDefFoundError 和 ClassNotFoundException 有什么区别?

   NoClassDefFoundError是JVM运行时通过类路径加载类,找不到对应的类时抛出的错误。

  如果这个异常可能在编译期间发生,那么它必须在编译期间抛出。

  NoClassDefFoundError发生的场景:

  该类所依赖的类或jar不存在。但是在不同的域中,总之找不到ClassNotFoundException的发生场景:

  当调用类的forName方法时,指定的类public static void main(string[]args){

  尝试{

  class . for name(“test”);

  } catch(ClassNotFoundException e){

  e . printstacktrace();

  } }

二、trycatch语法

  

1、try语句

   try语句包含一段花括号内的代码,可能会抛出一个或多个异常。

  

2、catch语句

   catch语句的catch参数类似于方法的声明,包括异常类型和异常对象。异常类型必须是Throwable class的子类,指示catch语句处理的异常类型。异常对象由运行时系统在try指定的代码块中生成并捕获,花括号包含对象的处理,其中可以调用对象的方法。

  可以有多个catch语句,用于处理不同类型的异常。Java运行时系统从上到下检测每个catch语句处理的异常类型,直到找到匹配类型的catch语句。在这里,类型匹配意味着catch处理的异常类型与生成的异常对象或其父类的类型完全相同。因此,catch语句的顺序应该是从特殊到一般。

  

3、finally语句

  无论try中是否会引发异常,finally语句中的代码都将被执行。finally语句块最重要的功能应该是释放所请求的资源。

  

4、throws语句

   throws总是出现在函数头之后,以指示此方法可能引发的异常。

  

5、throw语句

  和throws一样,只是位置不同。throw放在catch模块中,执行throw后程序会立即终止。throw之后的代码不执行,finally除外。

  

6、抛出异常

  公共void测试()引发异常{

  抛出新的异常();};

7、捕获异常

  尝试{

  //代码区}catch(异常e){

  log.error(error: {} ,e);}最后{

  //最后必须执行的部分}

三、trycatch的执行顺序

  从try中的第一行代码开始,执行时JVM会创建一个异常对象。

  判断catch是否能捕获jvm创建的异常对象,

  如果被捕获,跳转到catch的代码块,继续按照catch中的代码逻辑执行,不结束程序;

  如果没有,直接打印异常信息,结束程序。

  如果try中没有异常,执行try中的代码,跳过catch,进入finally代码块。

  

四、异常处理原则

  如果需要检测的异常在方法中抛出,必须在方法上声明,否则必须用try-catch在方法中捕获,否则编译会失败。

  如果调用声明异常的函数,要么try-catch要么抛出,否则编译失败。

  什么时候接球,什么时候投球?内容可以解决,但不能用catch解决。用throws告诉打电话的人,打电话的人会解决。

  如果一个函数抛出多个异常,则在调用时必须有相应的多个catch用于目标处理。

  推荐:以上《java教程》是全面掌握java异常处理机制原理及应用的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: