java基础3(异常)
2019-08-16 11:09:33来源:博客园 阅读 ()
java基础3(异常)
1.异常的体系
1)请描述异常的继承体系
异常继承体系为:异常的根类是 java.lang.Throwable,其下有两个子类:java.lang.Error 与 java.util.Exception 。而Exception又分为编译时期异常:checked异常,与运行时期异常:runtime异常。
2)请描述你对错误(Error)的理解
Error:表示不可修复的恶性的错误,只能通过修改代码规避错误的产生,通常是系统级别的,所以很严重。
3)请描述你对异常(Expection的理解)
Exception:表示可修复的良性(相对于错误)的异常,异常产生后程序员可以并且应该通过代码的方式纠正,使程序继续运行,是必须要处理的。
4)请描述你对运行时异常(RuntimeException)的理解
运行时期异常:runtime异常。在运行时期,检查异常.在编译时期,运行异常不会编译器检测(不报错)。
2.throw与throws的区别
问题:
1. 请描述throw的使用位置,作用是什么?
2. 请描述throws的使用位置,作用是什么?
答:
- throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。
- throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常对象抛给方法调用处
3.异常的处理方式
问题:
1. 异常处理方式有几种,分别是什么?
2. 详细阐述每种方式对异常是如何处理的
答:
- 异常的处理方式有两种,分别是使用throws和try...catch...finally
- throws用在方法的声明上后接异常类名,是把异常抛给调用者进行处理
- try...catch...finally是捕获异常,自己处理,处理完毕后面的程序可以继续运行
a) try代码块中是可能出现异常的代码
b) catch代码块,是遇到异常,对异常进行处理的代码
c) finally代码块是无论是否发生异常,都必须执行的代码,用于释放资源.
4.请列举常见异常,并说明产生原因
NullPointerException:空指针异常。
当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度等等。
ArrayIndexOutOfBoundsException:数组索引越界异常。
当对数组的索引值为负数或大于等于数组大小时抛出此异常。
ArithmeticException:算术运算异常。
程序中出现了除以零这样的运算就会出这样的异常,对这种异常,大家就要好好检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥了。
NumberFormatException:数字格式异常。
当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常。
5.根据给出的相应代码,分析可能产生的结果。
1).举例:
public static void main(String[]args){
String str=null;
System.out.println(str.length());
}
答:变量str的值为null,调用方法时,报空指针异常NullPointerException
2).举例:
public static void main(String[]args){
int arr[]={1,2};
System.out.println(arr[2]);
}
答:索引值2大于等于数组arr的长度时,报数组索引越界异常ArrayIndexOutOfBoundsException
3).举例:
public static void main(String[]args){
System.out.println(1/0);
}
答:整数0做了分母,报算术运算异常ArithmeticException:/by zero
4).举例:
public static void main(String[]args){
System.out.println(Integer.parseInt("itcast"));
}
答:
把字符串“itcast”转换为Integer类型时,当然会报数字格式化异常啦NumberFormatException
5)举例:
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");
try {
Date date = format.parse("2018-04-03");
System.out.println("程序正常");
} catch (ParseException e) {
System.out.println("程序异常");
}
}
答:
打印结果“程序正常”.try代码块中并没有产生异常,catch代码块中的代码不会执行。
原文链接:https://www.cnblogs.com/pengyupeng/p/11244539.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Java连载8-基本数据类型2
下一篇:Java虚拟机知识点【GC】
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash