iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java中异常处理机制的作用有哪些
  • 686
分享到

java中异常处理机制的作用有哪些

java异常处理 2023-05-31 16:05:03 686人浏览 安东尼
摘要

这期内容当中小编将会给大家带来有关java中异常处理机制的作用有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  Java异常处理机制其最主要的几个关键字:try、catch、finally、thro

这期内容当中小编将会给大家带来有关java中异常处理机制的作用有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

  Java异常处理机制其最主要的几个关键字:try、catch、finally、throw、throws,以及各种各样的Exception。本篇文章主要在基础的使用方法上,介绍了如何更加合理的使用异常机制。 

try-catch-finally

    try-catch-finally块的用法比较简单,使用频次也最高。try块中包含可能出现异常的语句(当然这是人为决定的,try理论上可以包含任何代码),catch块负责捕获可能出现的异常,finally负责执行必须执行的语句,这里的代码不论是否发生了异常,都会被执行。

    针对这部分,因为很基础,所以就提几点比较关键的建议:

      1、当你在写try-catch语句的时候,脑子里是知道自己要去针对哪种异常进行处理的,不要只是以防万一,加了个catch(Exception e),这是毫无意义的。并且,一个try块中可能有多个异常,对于每一类异常,要分别写一个catch进行捕获。       

      2、针对可能出现异常的语句进行try-catch,大段代码的try-catch会非常不利于维护代码时定位异常可能发生的位置,对于肯定不会发生异常的稳定的代码,不需要放在try块中。

      3、try-catch虽然在功能上,可以成为流程控制的工具,达到条件分支的效果。但相比于if-else语句,java的异常处理机制基于面向对象的思想,使用过程中需要更多的时间与空间的开销,所以不要用异常机制去做基本的条件判断,只有在程序会因为异常而中断时进行捕获和处理。

      4、finally块中永远不要写return语句,因为finally块中总是最后执行,他会改变预期在trycatch块中的返回值(举个例子,你在catch中捕获了一个异常并抛出e,又在finally语句中return true,这样你抛出的异常就"消失"了,因为当前函数的执行结果已经从抛出异常 转变成 return true)。另外,在使用资源对象与流对象时,finally块必须对资源对象、流对象进行关闭。

Java异常体系结构

    Java异常体系的基类是Throwable,它主要有两个子类:Error Exception。其结构如下图:

java中异常处理机制的作用有哪些      

    上图中,Error是指程序无法处理的错误,多指系统内部比较严重的错误。大多数这类错误与开发人员无关,我们关注的主要是Exception。

    Exception主要分为两块:运行时异常非运行时异常。RuntimeException及其子类都称为运行时异常;除此之外, 所有Exception的子类异常都是非运行时异常。

    运行时异常多指程序逻辑上出现问题(也就是我们自己写代码逻辑出了问题),常见的错误包括 ClassCastException:类型转换异常、NullPointerException:空指针异常、IndexOutOfBoundsException:越界异常...这些异常都可以通过程序逻辑处理来避免(比如加一个判断语句判断是否越界、是否属于某类型、是否为null),所以编译器把这些工作交给了程序员来把控,在编译期即使手动抛出了一个运行时异常不去捕获,编译器也会通过。因而这类异常也叫做"未检查异常"(uncheck)。同样属于未检查异常的还有所有的Error。即上图中,所有蓝色框表示未检查异常,橙色框表示"检查异常"(check)。对于检查异常,在可能发生异常的位置需要用try-catch块去捕获并处理,如果不处理它,就会一直向上层调用抛出,直到被处理为止。

throw 与 throws

    throws关键字主要在方法签名中使用,用于声明该方法可能抛出的异常。throws 可以理解成是一种通知行为,没有实际的抛出异常的动作,而仅仅是告诉调用他的上层函数,这里可能会抛出这个异常;

    throw用于在函数体内语句中,表示抛出一个实际的异常的实际动作,如果在函数内没有捕获并处理,那么将会一直向上抛出这个异常直到被main()/Thread.run()抛出。

    当一个函数throws声明函数可能抛出一个非运行时异常(检查异常)时,那么即使这个函数内部不显示使用throw,调用它的上层函数也必须包含处理这个异常的代码。举个例子:

public class Main {

    public static void main(String[] args){

        exceptionTest();
    }
    static int exceptionTest() throws IOException {
       
        return 0;   
    }
}   

上述代码中调用的exceptionTest函数声明抛出一个IOException属于检查异常,哪怕exceptionTest函数中不可能抛出这个异常,调用它的函数也必须对此异常做出捕获处理。现在main函数中没有相关的处理逻辑,所以会编译错误,如下图:

java中异常处理机制的作用有哪些

    而对运行时异常,就是另一种情况了:

public class Main {  public static void main(String[] args){  int i = divideTest(0); System.out.println(i); } static int divideTest(int b) throws ArithmeticException {   int i = 5/b; return i;  } }

--结束END--

本文标题: java中异常处理机制的作用有哪些

本文链接: https://www.lsjlt.com/news/227010.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中异常处理机制的作用有哪些
    这期内容当中小编将会给大家带来有关java中异常处理机制的作用有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  Java异常处理机制其最主要的几个关键字:try、catch、finally、thro...
    99+
    2023-05-31
    java 异常处理
  • Python中有哪些异常处理机制
    Python中有哪些异常处理机制,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。>>>>>>   ...
    99+
    2023-06-17
  • Java中重要的错误处理机制异常有哪些
    这篇文章主要介绍“Java中重要的错误处理机制异常有哪些”,在日常操作中,相信很多人在Java中重要的错误处理机制异常有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中重要的错误处理机制异常有哪些...
    99+
    2023-06-15
  • python中异常处理的作用有哪些
    Python中的异常处理有以下作用:1. 防止程序因为错误而崩溃:异常处理可以捕获程序运行中出现的错误,并采取相应的措施来避免程序崩...
    99+
    2023-09-06
    python
  • golang异常处理机制有哪些特点
    Golang的异常处理机制有以下特点: 错误处理:Golang鼓励使用错误值来处理异常,而不是传统的异常机制。这意味着函数会返回...
    99+
    2023-10-20
    golang
  • Java异常处理机制有什么用
    这篇文章主要介绍了Java异常处理机制有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.异常概述与异常体系结构1.1异常概述异常:在Java语言中,将程序执行中发生的...
    99+
    2023-06-25
  • C++ 技术中的异常处理:不同类型的异常处理机制有哪些?
    c++++中异常处理机制有:1. try-catch 块:捕获和处理异常;2. noexcept 规范符:指定函数是否可能抛出异常;3. 运算符重载:重载运算符抛出异常。实战中,try-...
    99+
    2024-05-10
    c++ 异常处理
  • Java的异常处理机制
    本篇内容介绍了“Java的异常处理机制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java 异常处理异常是程序中的一些错误,但并不是所有的...
    99+
    2023-06-02
  • Java中异步处理机制的应用场景有哪些
    Java中异步处理机制的应用场景有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。       通...
    99+
    2023-05-31
    java ava
  • Java异常的处理机制
    图片解析: 1.生成字节码文件的过程可能产生编译时异常(checked),由字节码文件到在内存中加载、运行类此过程可能产生运行时异常(unchecked), 2.JAVA程序在执行...
    99+
    2024-04-02
  • 【JAVA 异常处理机制】
    文章目录 前言1.java异常处理机制2.try-catch3.finally块4.自动关闭特性5.throw关键字6.throws关键字7.throws的重写规则8.异常分类9.异常API10.自定义异常总结: 前言 在Ja...
    99+
    2023-08-23
    java 开发语言 学习 intellij idea
  • Java中异常处理误区有哪些
    这篇文章将为大家详细讲解有关Java中异常处理误区有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。误区一、异常的选择图 1. 异常分类图 1 描述了异常的结构,其实我们都知道异常分检测异常和非检测异常...
    99+
    2023-05-30
    java
  • Java中异常处理的关键字有哪些
    Java中的异常处理关键字有以下几个: try:用于标识要捕获异常的代码块。 catch:用于捕获指定类型的异常,并在捕获到...
    99+
    2024-02-29
    Java
  • java异常处理的方法有哪些
    Java中常见的异常处理方法有以下几种:1. try-catch语句:使用try块包裹可能抛出异常的代码,然后使用catch块捕获并...
    99+
    2023-09-27
    java
  • Java异常处理的误区有哪些
    这篇文章主要介绍“Java异常处理的误区有哪些”,在日常操作中,相信很多人在Java异常处理的误区有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java异常处理的误区有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • Java异常的处理方式有哪些
    这篇文章主要介绍“Java异常的处理方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java异常的处理方式有哪些”文章能帮助大家解决问题。什么是异常?异常在我们写代码是特别常见,因为程序员大...
    99+
    2023-06-30
  • Java 详解异常的处理机制
    目录1.异常概述与异常体系结构1.1异常概述1.2运行时异常与编译时异常1.3异常体系结构2.常见异常1.ArrayIndexOutOfBoundsException2.NullPo...
    99+
    2024-04-02
  • Java中的SPI机制有哪些作用
    Java中的SPI机制有哪些作用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java的SPI机制实例详解SPI的全名为Service Provider Interface.普...
    99+
    2023-05-31
    java spi机制
  • Python中异常处理用法有哪些
    本篇内容主要讲解“Python中异常处理用法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中异常处理用法有哪些”吧!为了保证程序的健壮性与容错性,即在遇到错误时候程序不会崩溃,...
    99+
    2023-06-21
  • java中异常处理机制的原理是什么
    Java中的异常处理机制是基于异常类的继承关系和异常处理代码块的机制。当程序发生异常时,会抛出一个异常对象,该异常对象会沿着调用链向...
    99+
    2023-08-31
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作