【Java基础】[异常处理]try,catch,finally

简介: 【Java基础】[异常处理]try,catch,finally

一、什么是异常处理?


我们做的程序需要有健壮性,即,程序在运行时能够不出或者少出问题。但是,在程序的实际运行时,总会有一些因素导致程序不能正常运行。


  异常处理(ExceptionHandling)就是一种解决这一问题的机制,当程序运行出现意外情形时,系统会自动生成一个Exception对象来通知程序,从而实现将“业务功能实现代码”和“错误处理代码”分离,提供更好的可读性。


二、使用if…else做异常处理


if(一切正常){


    //业务实现代码…


     }


     else{


           alert 输入不合法


           goto retry


     }


  但是“一切正常”是很抽象的,无法转换成计算机可识别的代码,于是,出现:如果程序可以顺序完成,则“一切正常”。把系统的业务实现代码放在try块中定义,所有的异常处理逻辑放在catch块中处理。


  常见语法结构:


  try{


       //业务实现代码…


}


  catch(Exception e){


     alert 输入不合法


  goto retry


      }


三、关于try catch finally    

如果执行try块的业务逻辑代码出现异常,系统会自动生成一个异常对象,该异常对象被提交给Java运行时环境,称为抛出(throw)异常。


   Java运行时环境收到异常对象,会寻找处理改异常对象的catch块,如果找到合适的catch块,则把该异常对象交给catch块处理,称为捕获(catch)异常;如果找不到捕获异常的catch块,则运行时环境终止,Java程序也将退出。


   有时,程序在try块中打开了一些物理资源(数据库连接,网络连接,磁盘文件等)这些物理资源需要被显式回收。那么,在哪里回收呢?


   在Java的垃圾回收机制?NO,Java的垃圾回收机制只能回收堆内存中对象所占内存。


   在try块中回收?NO,当某语句执行时出现异常,该语句后面的其他语句不会获得执行机会,则该语句之后的资源得不到回收语句的执行,不能被回收。


   在catch块中回收?NO,catch块完全有可能得不到执行,物理资源仍可能不能及时被回收。


   所以,finally出现了~总会被执行!


   finally块位于所有的catch块后,无论try块是否出现异常, catch块是否被执行,或try,catch块中执行了return语句,finally都会被执行!


   


try{


      //业务实现代码…


}


catch(Exception e){


    //异常处理块1


      }


Catch(Exception e){


     //异常处理块2


    }


        finally{


            //资源回收块


        }


 


四、当异常处理遇到return


通常情况下,一旦在方法里执行到return语句的地方,程序将立即结束该方法,但在异常处理中,仍会先执行完finally块中的代码,才会执行try ,catch中的return语句。所以,尽量不要在finally块中使用return或throw等导致方法终止的语句,一旦使用,将会导致try块,catch块中的return、throw语句失效,得不到执行。


   以上是对异常处理中try块,catch块,finally块的简单的介绍,在后面的博客中,会加入本人更深入的理解,敬请期待。




















相关文章
|
1天前
|
安全 Java 程序员
掌握Java中的异常处理:从基础到高级
【9月更文挑战第31天】在Java的世界里,异常处理就像是生活中的急救箱—你永远不知道什么时候会需要它。本文将带你从“Hello World”的平静水面下,潜入异常处理机制的深海,探索如何在代码中优雅地处理那些不可预见的错误和问题。我们将一起学习如何使用try-catch语句来捕获异常,如何正确使用finally块,以及自定义异常类的魅力所在。准备好了吗?让我们开始这段既实用又充满教育意义的旅程吧!
|
1天前
|
Java 程序员 开发者
深入理解Java中的异常处理机制
【9月更文挑战第31天】在Java编程中,异常处理是维护程序健壮性的关键。本文将通过浅显易懂的语言和生动的例子,带你了解Java异常处理的基本概念、分类以及如何优雅地处理它们。从初学者到资深开发者,每个人都能从中获得新的洞见和技巧,让你的代码更加健壮和易于维护。
10 4
|
1天前
|
Java 开发者 UED
Java中的异常处理:从基础到深入
【9月更文挑战第31天】在探索Java编程世界的旅程中,异常处理是一块不可忽视的领域。本文将带领读者从异常的基本概念出发,逐步深入到异常处理的最佳实践。我们将通过实际案例和代码示例,展示如何优雅地处理程序中出现的错误和异常情况。无论你是Java新手还是有经验的开发者,这篇文章都将为你提供宝贵的见解和技巧。
|
3天前
|
Java UED
Java中的异常处理:从基础到高级
【9月更文挑战第29天】本文将带你深入了解Java的异常处理机制,从基本概念到高级应用,我们将一起探索如何通过有效的异常处理提升程序的健壮性和用户体验。文章不仅涵盖try-catch-finally的基本用法,还将介绍如何使用自定义异常和异常链来处理更复杂的错误情况。准备好让你的代码更加健壮,让我们一起潜入Java异常处理的世界吧!
7 3
|
2月前
|
Java 程序员
Java中的异常处理:基础与实践
【8月更文挑战第26天】在Java的世界中,异常处理是保持程序稳定运行的关键。本篇文章将带你了解如何在Java中捕获和处理异常,以及如何使用自定义异常来增强代码的健壮性。我们将通过实际的代码示例,展示如何有效地管理和利用异常机制。
|
2月前
|
Java 程序员
Java中的异常处理:理解与实践
在Java编程的世界中,异常处理是保持程序稳健运行的关键。本文将通过浅显易懂的语言和生动的比喻,带你了解Java的异常处理机制,从基础概念到高级应用,一步步深入探讨。我们将一起学习如何优雅地处理那些不请自来的错误信息,确保你的代码像经验丰富的舞者一样,即使在遇到绊脚石时也能从容不迫地继续前行。
|
2月前
|
Java 开发者
Java中的异常处理:理解与实践
【8月更文挑战第10天】在Java的世界中,异常是程序运行时可能遇到的非预期事件,它们中断了正常的指令流程。本篇文章旨在深入探讨Java的异常处理机制,从异常的基本概念出发,逐步引导读者理解异常的分类、捕获和处理,以及如何有效地设计异常策略,提升代码的健壮性和可维护性。通过本文的学习,你将能够更加自信地面对Java编程中的异常挑战。
|
6天前
|
Java 程序员 数据库连接
Java中的异常处理机制:理解与实践
本文将深入探讨Java语言中异常处理的核心概念、重要性以及应用方法。通过详细解析Java异常体系结构,结合具体代码示例,本文旨在帮助读者更好地理解如何有效利用异常处理机制来提升程序的健壮性和可维护性。
|
10天前
|
Java 程序员 数据库连接
Java编程中的异常处理:理解与实践
【9月更文挑战第22天】在Java编程的世界里,异常处理是一项基础而关键的能力。它不仅关乎程序的健壮性,也体现了开发者对待不可预知情况的态度。本文将通过深入浅出的方式,带你认识Java的异常处理机制,从理论到实践,一步步解锁异常处理的秘密。
|
29天前
|
数据采集 Java 数据挖掘
Java IO异常处理:在Web爬虫开发中的实践
Java IO异常处理:在Web爬虫开发中的实践
下一篇
无影云桌面