网站首页 > java教程 正文
我们先来了解下几个基本概念:
1.什么是异常?
异常也称为例外,是在程序运行过程中发生的、会打断程序正常执行的事件。
2.异常有哪些?
常见的异常有三种:
1)算术异常(ArithmeticException)。
2)没有给对象开辟内存空间时会出现空指针异常(NullPointerException)。
3)找不到文件异常(FileNotFoundException)。
所以在程序设计时,必须考虑到可能发生的异常事件,并做出相应的处理。这样才能保证程序可以正常运行。
Java 的异常处理机制也秉承着面向对象的基本思想。在 Java 中,所有的异常都是以类的类型存在,除了内置的异常类之外,Java 也可以自定义的异常类。
在没有异常处理机制的语言中,我们就必须使用 if 或 switch 等语句,配合所想得到的错误状况来捕捉程序里所有可能发生的错误。为了捕捉这些错误,编写出来的程序代码经常有很多的 if 语句或switch语句,即使这样有时候也未必能捕捉到所有的错误,而且这样做会导致程序运行效率的降低。
Java 语言的异常处理机制恰好改进了这一点。它具有易于使用,可自行定义异常类,处理抛出的异常同时又不会降低程序运行的速度等优点。因而在 Java 程序设计时,充分地利用 Java 的异常处理机制,可以增进程序的稳定性及效率。
Java中的异常处理是由try、catch 与 finally 三个关键字所组成的程序块,具体语法如下:
try//try语句块
{
要检查的程序语句;
......
}
catch(异常类 对象名称)//catch语句块
{
异常发生时的处理语句;
......
}
finally //finally语句块
{
一定会运行到的程序代码;
......
}
我们可以通过下图(图1)更清楚地理解异常处理的流程:
图1 异常处理的流程图
说明:
1、try 程序块若是有异常发生时,程序的运行便会中断,并抛出“异常类所产生的对象”。
2、抛出的对象如果属于 catch()括号内欲捕获的异常类,则 catch 会捕捉此异常,然后进到 catch 的块里继续运行。
3、无论try 程序块是否有捕捉到异常,或者捕捉到的异常是否与catch()括号里的异常相同,最后一定会运行finally 块里的程序代码。
----------
微价值网(公号vjiazhi),关注移动互联网,以及APP产品/技术/推广,提供最有价值的干货文章。
猜你喜欢
- 2025-01-03 聊一聊java中的异常
- 2025-01-03 学习Java异常,吃透这篇足够
- 2025-01-03 轻松搞定 JAVA 异常面试,25 道题及答案全掌握!
- 2025-01-03 Java全局异常处理,你不知道的骚操作(含hotspot源码分析)
- 2025-01-03 Java中异常处理机制的详细解析及其优化示例代码
- 2025-01-03 java异常处理try/catch/finally
- 2025-01-03 Java异常详细介绍
- 2025-01-03 java安全编码指南之:异常处理
- 2025-01-03 Java8学习-Lambda表达式中处理异常的解决方案
- 2025-01-03 Java中的异常及处理方法
你 发表评论:
欢迎- 04-24Java Collections 工具类集合框架中常用算法解析
- 04-24桶排序的简单理解
- 04-24Java集合框架底层实现原理大揭秘
- 04-24Java 集合框架全面解析:选对数据结构,提升开发效率
- 04-24c#集合排序
- 04-24Java面试中常被问到的集合类深度解读
- 04-24VBA技术资料MF278:对集合进行排序
- 04-24Spring 最常用的 7 大类注解,史上最强整理
- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)