网站首页 > 精选教程 正文
什么是异常
异常,又称为例外,是指不可预知的非正常的情况,例如:正常开车突然路口窜出一条狗来,或者正常上下班的路上,某个街角偶遇了爱情,或者在每天晨跑的小树林遭遇了歹徒。这些突发的情况的发生是不可预知的,where,when......,但是如果处理好了,美好的生活不受影响,可以继续,如果处理不好,可能就“挂”了。
Java语言将程序执行中发生的不正常情况称为“异常”,异常是一种对程序运行过程中发生错误时进行通知的机制。如:网络连接失败、用户输入错误或打开文件失败等。
提示:(1)语法错误不属于异常,这种情况编译不通过,无法运行;(2)逻辑错误不属于异常,这种情况属于BUG,必须修正; |
Java异常的堆栈式抛出机制
示例代码:
package com.atguigu.exception;
public class TestException {
public static void main(String[] args) {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
System.out.println(a + "/" + b + "=" + a/b);
}
}
命令行执行:
java com.atguigu.exception.TestException 12 3
运行结果显示12/3=4,结果正常。
1. ArrayIndexOutOfBoundsException数组下标越界异常
命令行执行:
java com.atguigu.exception.TestException
出现异常形式,如图9-1:
图9- 1 ArrayIndexOutOfBoundsException数组下标越界异常
2. NumberFormatException数字格式化异常
命令行执行:
java com.atguigu.exception.TestException a b
出现异常形式,如图9-2:
图9- 2 NumberFormatException数字格式化异常
3. ArithmeticException算术异常
命令行执行:
java com.atguigu.exception.TestException 12 0
出现异常形式,如图9-3:
图9-- 3 ArithmeticException算术异常
4. 结论
在Java中异常以对象的形式出现,不同的异常对象中封装了相应的错误信息。
Java是采用面向对象的方式来处理异常的。处理过程:
l 抛出异常:在执行一个方法时,如果在某句代码发生异常,则会在该句代码处生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE,不同的异常对象中封装了相应的错误信息。
l 捕获异常:JRE得到该异常后,寻找相应的代码来处理该异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常处理代码为止。如果没有找到处理代码,那么程序终止运行
Java中异常的是以堆栈式抛出机制来进行错误通知的,如图10-4。
图10- 4 抛出异常
更多精彩内容:
- 上一篇: Java中的异常和处理详解
- 下一篇: Java中异常处理的15条原则
猜你喜欢
- 2024-11-20 Java中的异常
- 2024-11-20 小白也能看懂的Java异常处理机制
- 2024-11-20 JVM是如何处理各种异常的呢?
- 2024-11-20 Java异常之异常处理类详解和代码举例
- 2024-11-20 第25天|Java入门有野,异常处理
- 2024-11-20 java安全编码指南之:异常处理
- 2024-11-20 解读Java编程思想--异常处理
- 2024-11-20 Java中异常处理机制的详细解析及其优化示例代码
- 2024-11-20 学习java, 需要知道的异常处理
- 2024-11-20 java异常处理
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)