异常处理,JAVA中异常处理的介绍(java中异常处理机制是怎样的)

createh53个月前 (02-01)技术教程32

异常处理的介绍

在Java程序的运行过程中,如果Java虚拟机检测出一个无法执行的操作,就会产生运行时错误(runtime error)

在Java中,运行时错误会作为异常来抛出。

抛出的异常是一个对象,该对象表示影响程序正常运行的错误或情况。

如果抛出的异常没有被处理,那么程序将会非正常终止并退出。因此,

异常对应用程序的运行至关重要。

  • Java程序在运行的过程中,可能会出现各种各样的意外情况。
  • 为了表示这些意外情况,Java API中定义了数量众多的各种异常类。基于见名知意的原则,大多数异常类的名称都比较长。
  • 在程序的运行过程中,如果产生了某种异常,Java虚拟机就创建该异常类的对象并抛出。
  • 因此,异常就是一个从异常类创建的对象异常处理就是处理该异常类的对象


  1. 当异常被抛出时,程序正常的运行流程就会被中断
  2. 就像其名称所说的那样,“抛出异常”就是将异常从一个地方传递到另一个地方
  3. 在Java中,使用try‐catch来编写异常处理的代码
  4. 可能会产生异常的代码放在try之后的大括号中,而catch则用来捕获某种指定类型的异常,异常处理代码则放在catch之后的大括号中


关于 try-catch

  • 一个try结构可以跟随1到多个的catch,用于捕获不同类型的异常
  • catch后面的小括号中指定了该catch语句处理的异常类
  • 如果try结构中的某一行代码产生了异常,则该异常被catch块所捕获,catch块中的代码将被运行以处理异常。
  • 可以看出,catch块的写法有点类似于方法定义,小括号中指定异常的类型,后面的大括号中则包括了处理该类型异常的相应代码


  • catch块中的代码执行完之后,不会返回到try块中,而是执行所有catch块之后的语句
  • 这说明,在抛出异常的情况下,try中的部分代码是被跳过的,不会被Java虚拟机运行
  • 理解这一点非常重要。
  • 因此,在try中很少进行变量的定义和初始化,一方面是该变量的作用域仅限于try块,另一方面该变量的定义和初始化语句可能被跳过了,根本没有运行


大多数异常都是由相应的代码产生、由 Java 虚拟机负责抛出的。

同时,Java开发人员也可以使用 throw 关键字来手动抛出指定类型的异常。


  • 异常处理机制能使被调用的方法抛出一个异常给方法的调用者,并由调用者来处理该异常。
  • 如果没有异常处理机制,那么被调用的方法就必须自己处理异常或者直接终止程序的运行
  • 但是,通常被调用的方法不清楚在出错的情况下该如何处理,Java API中的方法大多都属于这种情况。
  • Java API中的方法可以检测出错误,但是只有方法的调用者才知道出现错误时需要如何进行处理
  • 异常处理机制最根本的优势就是将检测错误与处理错误分离开来,其中,检测错误由被调用的方法完成,而处理错误则由方法的调用者来完成


相关文章

Java 异常处理通关指南(java异常处理是怎样实现的)

前言在理想世界中,程序永远不会出现问题,用户输入的数据永远是正确的,逻辑没有任何问题 ,选择打开的文件也一定是存在的,内存永远是够用的……!但是现实世界里一旦出现这些问题,如果处理不好,程序就不能正常...

Java面试篇基础部分-Java中的异常以及异常处理

在实际的开发过程中,往往会遇到各种各样的编程异常,如何处理这些异常,直接会影响到整个程序和系统的稳定性,如果不能在合适的地方抛出合适的异常或者是对异常进行捕获。那么就会影响到整个程序的运行。所以如何处...

Java基础——如何优雅地处理异常(java中异常处理机制是怎样的)

说起优雅,不知道为什么,我脑补的场景是这样的:说起优雅的反面,不优雅,我首先想到的是这位:希望费天王还能回归赛场,伤病快点好,说回正题1 基本概括2 主要介绍2.1 异常处理机制在 Java 应用程序...

Java8学习-Lambda表达式中处理异常的解决方案

简介Lambda表达式利用函数式编程提供精简的方式表达行为。然而,JDK函数式接口没有很好地处理异常,使得处理异常代码非常臃肿和麻烦。下面我们来探讨下 Lambda表达式中处理异常的解决方案代码示例首...

学习Java快速入门全流程体系介绍-异常处理

Java异常处理是指在程序运行时检测到异常情况并尝试以适当的方式进行处理的机制。Java中提供了一种try-catch-finally结构来处理异常。处理异常的主要目的是使程序在遇到错误时能够优雅地退...

学习Java异常,吃透这篇足够(java异常什么意思)

文章目录一、前言这篇技术博客是我复习尚硅谷JavaSE教程做的笔记总结,方便大家的学习同时也方便自己。博客内容非复制粘贴,纯手写。如果对你有帮助,欢迎点赞评论收藏!二、异常概述及异常体系结构1.概述我...