实验编号:005四川师大Java程序设计实验报告 2015年11月1日
计算机科学学院级4班 实验名称:异常处理_
姓名:沙夫都学号:2013110431指导老师:___夏羽___实验成绩:_____
实验五异常处理
一. 实验目的及要求
1) 理解异常的基本概念。
2) 理解throws、try、 catch、finally等语句的语法格式和使用。 3) 理解自定义异常类的定义和使用方法。 4) 掌握Java的异常处理机制、方法与应用。
二. 实验内容
根据实验说明的要求编写程序并回答实验报告中的问题。
三.实验主要流程、基本操作或核心代码、算法片段
1. 请将任务一的运行结果截图。
2. 请将任务二的运行结果截图。
3. 请回答什么是checked异常,什么是unchecked异常?如何创建一个unchecked异常。
分别为这两种异常举三个例子。
Check异常是必须处理的异常,若不加上try..catch块就不能通过编译,Checked异常必须被显式地捕获或者传递。而Unchecked异常可以不加try..catch块或者抛出也能编译,但是运行可能会报异常。
常见checked异常: IOException,所有的自定义异常、FileNotFoundException、SQLException、ClassNotFoundException 常见的Unchecked异常有NullPointerException,ArithmeticException,ArrayIndexOutOfBoundsException 4. 假设有下面的伪代码段: 伪代码段 try{ 语句1; 语句2; //产生异常 语句3; } catch (异常1 e) { 异常处理1; } catch(异常2 e) { 异常处理2; } finally{ 语句4; } 语句5; 如果语句2出现异常,请回答: 1). 语句3会执行吗?如果不会,为什么?如果会,在什么情况下会执行? 不会。因语句2产生了异常会被catch到。
2). 什么情况下语句4会执行?什么情况下语句4不会执行?
只要能捕获语句2异常的catch语句里不存在exit,退出函数语句4都会执行。 5. 假设有下面程序: UseException.java public class UseException { public static void main(String[] args) { threshold(100); System.out.println(“The value is ok.”); } public static void threshold(int value) { if(value < 40) { throw new Exception(“value is too small!”); } } } 请回答,上面的程序正确吗?如果正确,其运行结果是什么?如果不正确,应该怎样修改?
错误。将throw new Exception(“value is too small”);加上try…catch 块
四. 实验结果的分析与评价
异常处理能解决很多使错误崩溃的问题。但是现在我能力还是有限,并不能找出所有可能出现的异常。所以我还得努力
注:实验成绩等级分为(90-100分)优,(80-89分)良,(70-79分)中,(60-69分)及格,(59分)不及格。