首页 > 代码库 > Java语言程序设计 上机实验5 异常
Java语言程序设计 上机实验5 异常
Java语言程序设计 上机实验5
实验目的:
理解异常的概念,掌握Java的异常处理机制、常见异常的捕获方法、自定义异常及其抛出和捕获方法。
实验内容:
- 常见异常的捕获:
编写一个程序,分别生成ArrayIndexOutOfBoundsException类型和NumberFormatException类型的异常;然后改写程序,对这两种类型的异常进行捕获并合理地处理。
另外,思考并回答问题:能否0同时抛出ArrayIndexOutOfBoundsException类型和NumberFormatException类型的异常?为什么?
- 自定义异常的定义、拋出和捕获:
(1) 自定义两个异常类:非法姓名异常IllegaNameException和非法地址异常IllegalAddressException。
(2) 定义Student类包含Name和Address属性,和setName、setAddress方法,当姓名长度小于1或者大于5时抛出IllegaNameException,当地址中不含有“省”或者“市”关键字时抛出IllegalAddressException。
(3) 编写程序抛出这两种异常,在main方法中进行捕获并合理地处理。
实验要求:
1. 在实验报告中给出程序运行结果截图。
2. 源程序代码附到实验报告的最后。
3. 认真填写实验报告并妥善存档,在下次上机实验课之前发送电子版实验报告至 wsycup@foxmail.com。
注意,“邮件标题”与“附件实验报告文件名”均为:
Java1实验报告N_学号_姓名
其中N为阿拉伯数字,指第几次实验,例如:
Java1实验报告3_ 2012010400_李雷
请严格按照规定的格式发送邮件(注意标题中“Java”后的数字“1”),邮件标题不符合格式要求等同于未交作业,并在规定的时间发送实验报告邮件,过期无效。
4. 实验报告雷同者将不能得到相应的平时分。
附录:实验报告
实验题目__实验5________
学号__2014011329__ 姓名___许恺____ 班级___计算机14-1___ 时间____________
实验题目解答
一.
二.
附:源程序
一.
package com.Test5; public class Test5 { public static void main(String[] args) { // TODO Auto-generated method stub int a[]=new int[8]; int b; try{ for(int i=0;i<10;i++){ System.out.println(a[i]); } } catch(ArrayIndexOutOfBoundsException e){ System.out.println("数组越界"); } try{ b=Integer.parseInt("23gf"); } catch(NumberFormatException e){ System.out.println("类型格式转换错误"); } } } 二.Test55.java package com.Test55; public class Test55 { /** * @param args * @throws IllegalAddressException * @throws IllegaNameException */ public static void main(String[] args) throws IllegalAddressException, IllegaNameException { // TODO Auto-generated method stub Student s=new Student() ; s.setName("测试姓名字符串"); s.setAddress("测试地址字符串"); } } Student.java package com.Test55; public class Student { String Name; String Address; public void setName(String Name)throws IllegaNameException{ if(Name.length()<1||Name.length()>5) throw new IllegaNameException(Name+",长度出错,应在1-5之间。"); this.Name=Name; } public void setAddress(String Address)throws IllegalAddressException{ boolean j=false; for(int i=0;i<Address.length();i++){ if(Address.charAt(i)==‘省‘||Address.charAt(i)==‘市‘){ j=true; break; } } if(j==false){ throw new IllegalAddressException(Address+"中没有‘省’或‘市’出现,请修正"); } this.Address=Address; } } IllegaNameException.java package com.Test55; public class IllegaNameException extends Exception { public IllegaNameException(){ super(); } public IllegaNameException(String s){ super(s); } } IllegalAddressException.java package com.Test55; public class IllegalAddressException extends Exception { public IllegalAddressException(){ super(); } public IllegalAddressException(String s){ super(s); } }
心得和体会:
对于异常的处理经过编程之后才明白他的含义和用法,遵循java中的规则,只是提供一个建立异常的平台,定义也是在外面,之前理解错误了,以为新建异常都是在一个类中,对我很有帮助。
Java语言程序设计 上机实验5 异常