首先呢我们要知道什么是异常?异常指程序运行过程中出现的非正常现象,例如用户输入错误、除数为零、需要处理的文件不存在、数组下标越界等,英文是:Exception,意思是例外。遇到这些例外情况,或者叫异常,我们怎么让写的程序做出合理的处理,安全的退出,而不至于程序崩溃呢?这个时候我们可以使用异常捕获的功能。

捕获异常是通过3个关键词来实现的:try-catch-finally。用try来执行一段程序,如果出现异常,系统抛出一个异常,可以通过它的类型来捕捉(catch)并处理它,最后一步是通过finally语句为异常处理提供一个统一的出口,finally所指定的代码都要被执行(catch语句可有多条;finally语句最多只能有一条,根据自己的需要可有可无)。大致的运行图片可看:

1. try:

try语句指定了一段代码,该段代码就是异常捕获并处理的范围。在执行过程中,当任意一条语句产生异常时,就会跳过该条语句中后面的代码。代码中可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理。

一个try语句必须带有至少一个catch语句块或一个finally语句块 。

2. catch:

n-每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。

n-常用方法,这些方法均继承自Throwable类 。

n-catch捕获异常时的捕获顺序。

3. finally:

n-有些语句,不管是否发生了异常,都必须要执行,那么就可以把这样的语句放到finally语句块中。

n-通常在finally中关闭程序块已打开的资源,比如:关闭文件流、释放数据库连接等

这有一个典型的代码可以看:

java异常捕获_java之异常捕获相关推荐

  1. java 运行异常处理_Java编程异常处理和I/O流

    重点: 1.在编写程序时,要正确地使用捕获例外和声明抛出异常的两种例外处理的方法. 2.遇到实际问题时,要根据需要正确使用各种输入/输出流,特别是对中文使用适当的字符输入流. 3.正确使用对象串行化的 ...

  2. java 异常限制_java的异常限制

    class Exception1 extends Exception{} class Exception2 extends Exception{} class Exception3 extends E ...

  3. java 异常提示_Java显示异常信息与异常分类

    运行上述代码,输出结果如下下图所示: 使用printStackTrace方法可以获取异常的具体类型,这样就可以在使用throw是抛出一个确切的异常. 2. 异常的分类 从编程角度考虑,可以将异常分为以 ...

  4. java异常面试_java中异常的面试

    https://blog.csdn.net/qq_36523638/article/details/79363652 1) Java中的检查型异常和非检查型异常有什么区别? 这又是一个非常流行的Jav ...

  5. java 异常 日志_java(异常和日志)

    java异常看这篇就够了http://www.cnblogs.com/lulipro/p/7504267.html 1.类路径 所谓的类路径就是指程序运行时jvm要加载的类的.class文件所在地方 ...

  6. java百度文库_java 常见异常 (百度文库)

    1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...

  7. java 常见异常汇总_Java常见异常总结

    1. java.lang.NullPointerException(空指针异常) 调用了未经初始化的对象或者是不存在的对象 经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的 ...

  8. java添加信息_java – 向异常添加信息

    我想向堆栈跟踪/异常添加信息. 基本上我现在有这样的东西,我真的很喜欢: Exception in thread "main" java.lang.ArithmeticExcept ...

  9. java 正则 捕获_Java通过正则表达式捕获组中的文本

    1.简介 Java 正则表达式如何捕获组中的文本 ?--请看下文. 2.代码 /** * 版权所有 编程十万个怎么办(www.tah1986.com) */ public class Capturin ...

最新文章

  1. pandas使用to_datetime函数把dataframe的字符串日期数据列转化为日期格式日期数据列( strings to datetime in dataframe column)
  2. 年薪50万美金的工程师到底牛在哪里?
  3. 机器学习笔记:高斯过程
  4. 编辑器FreeTextBox升级至3.0
  5. matlab热度图确定色标_C++实现类似Matlab的colormap Jet(灰度图生成彩色热度图)
  6. Segment Model.
  7. github 思维导图开元软件_最强大脑!这 7 款开源思维导图工具真的很神奇
  8. Python生成自定义表头Excel
  9. Google Chrome开发者工具-移动仿真:网络带宽控制
  10. Matlab下地形图绘图包m_map绘制晕渲(shaded relief)地形图
  11. TCP/IP协议基础(转)
  12. ARFoundation☀️ 八、SARF:ARFoundation可视化插件
  13. 华为实验——两核心两接入一路由配置
  14. 开始学习BW4HANA 一
  15. A Game of Thrones(47)
  16. 智慧医疗中人工智能的7大应用|数据标注
  17. 为什么学习帕拉卡3D动画编程要从搭建开始?
  18. vue中h5项目怎么使用weui
  19. 10086上线明星客服语音,运营商Z世代争夺战全面打响
  20. 洛谷 P1726 上白泽慧音

热门文章

  1. Java版本和JDK版本对应关系
  2. 《论程序员与老板之间的道德问题》
  3. MFC中得到2个SYSTEMTIME时间差的函数
  4. 大学英语精读第三版(第三册)学习笔记(原文及全文翻译)——8B - Dreams — What Do They Mean?(梦意味着什么?)
  5. Centos7.x实现Cobbler无人值守安装
  6. 股票交易sdk接口是什么意思?
  7. 如何提高推荐量?新手必知 头条号推荐机制
  8. 微圈社群助手到底是什么?怎么用?
  9. 微信小程序关于页面不跳转的问题
  10. 利用存儲過程進行簡繁體轉換