实验3异常处理和常用实用类.doc

上传人:scccc 文档编号:12573679 上传时间:2021-12-04 格式:DOC 页数:11 大小:185KB
返回 下载 相关 举报
实验3异常处理和常用实用类.doc_第1页
第1页 / 共11页
实验3异常处理和常用实用类.doc_第2页
第2页 / 共11页
实验3异常处理和常用实用类.doc_第3页
第3页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《实验3异常处理和常用实用类.doc》由会员分享,可在线阅读,更多相关《实验3异常处理和常用实用类.doc(11页珍藏版)》请在三一文库上搜索。

1、实习 3 异常处理和常用实用类 实验目的(1) 掌握 Java 的异常处理机制 及相关实现方法;(2) 掌握常用实用类的使用,熟 悉使用 JDK_API 进行软件开发;(3) 掌握 Java 中正则表达式的基本用法。实验题 1 try-catch 练习:在程序中产生一个 ArithmeticException 类型被 0 除的异常, 并用 catch 语句捕获这个异常。捕获到异常后在 catch 代码段中调 用该异常对象的 getMessage() 、toString() 、printStackTrace() , 结合 jdk_api ,说明三者的区别。package question1;pu

2、blic class ArithmeticException public static void main(String args )try int m=1;int n=1/0; catch (Exception e) / TODO: handle exceptionSystem. out .println( " 异常是: " +e.getMessage();System. out .println( " 异常是: " +e.toString();e.printStackTrace();答: getMessage 的作用是返回此 throwble 的详

3、细消息字符串; toString 的作用是返回此 throwble 的简短描述。 结果是此对象类的 名字,冒号和一个空格和调用此对象 getLocalizedMessage() 方法 的结果 。如果 getLocalizedMessage 返回 null ,则只返回类名称。 printStackTrace 将此 throwable 及其追踪输出至标准错误流。此 方法将此 Throwable 对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的值。输出的第一行包含此对象的 toString() 方法的 结果。剩余行表示以前由方法 fillInStackTrace() 记录的数据。实

4、验题 2 用户自定义异常: 编写一个程序, 用来检查输入的字 符串是否含有非英文字符(即 A-Z和 a-z 以外的字符)。1. 定义一个异常类 IllegalCharacterException ,让其继承异常 类 Exception ;2. 写一个 CheckString 类,为其添加 静态方法 check(String str) ,当 str 中含有非英文字符时,不做异常处理,只将产生 的异常抛出,抛出的异常参数 message为:“字符串含有非英文 字符!”;3. 在主类 ExceptionTest 中进行测试,输入多个字符串,使用 try-catch 对捕获的异常进行处理。1 pack

5、age question2;22 public class CheckString extends Exception3 private static String /message''芮?昂中含有北欺洋讯";public static void check(String str) throws IllegalCharactcrException6 String s=*a-zA-Z7 if(!str.matches(s)8 throw new IllegalCharacterException(re55age);9 10 6&也7Qk 89Okie111213

6、1421516171819 20package question2; import java.util.*;4 public class ExceptionTest5public static void main(String args)/ TODO自动生成的方法存根Scanner reader 二 new ScannQr(Systm.Tn); System .out. print In (”请输入一串字符"); Checkstring A=new CheckString();String str=reader.nextLine();try CheckStrir)g chec/?(s

7、tr); catch (IHegalCharacterException e) / T0t>0自动生成的catch块 e.printStackTrace();package question2;2N 3 public class IllegalCharacte广Exception extends Exceptior)4public IHegalCharacterException(String arg0) 6super(arg0);谢7/ TODO白动生成的构迭因藪存根8 9 10蹄入聊苻giyl68t ion:立苻击中含言非苹"7丰布t question2.CheckStri

8、ng.check(ChockStriac北3:8)at question2 FxcgptionT©st .main(FxcQDricnTxt. java: 1 3)实验题 3 常用实用类 Calendar 练习。编写一个能够显示日历的程序,程序效果截图如下:基本要求1. 默认显示系统当前月份,接受标准输入,当键盘输入“ p”并回 车时,显示上一月日历,当键盘输入“ n”并回车时,显示下一月日2. 使用 Calendar 类开发该程序,在 API 中熟悉 Calendar 类的常 量、get 方法、 set 方法, roll() 等基础内容之后再开发程序。 package Calend

9、ar;import java.util.*;public class CalendarBean int year = 0; int month = 0;void setYear( int year ) this . year = year ;void setMonth( int month ) this . month = month ;public void getCalender()String a = new String35;Calendar rili = Calendar. getInstance ();rili .set( year , month -1,1);int weekDa

10、y = rili .get(Calendar. DAY_OF_WEE)-K1; / 返回当前 日期所对应的星期, 1 表示是星期日,以此类推int day = 0;if ( month =1| month =3| month =5| month =7| month =8| month = =10| month =12)day = 31;if ( month =4| month =6| month =9| month =11)day = 30;if ( month =2)if ( year %4=0)&&(year %100!=100)|( year %400=0) day =

11、28; else day = 29;for ( int i =0; i <weekDay; i +)a i = " " ;for ( int i =weekDay, n=1; i <day +weekDay; i +) a i = String. valueOf ( n); / 将 int 转化为 String n+;for ( int i =weekDay+day; i <a. length ; i +)a i = " " ;System. out .println( year +" 年"+month+"

12、 月"); char str = " 日一二三四五六 " .toCharArray(); for ( char c: str ) / 输出日历的最上方一行System. out .printf( "%3s" ,c);for ( int i = 0; i < a. length ; i +) if (i %7=0)System. out .println( "" );System. out .printf( "%4s" ,a i );package Calendar;import java.util.

13、*;public class CalendarTest public static void main(String args ) / TODO 自动生成的方法存根CalendarBean cal = new CalendarBean();Calendar nowDate = Calendar. getInstance (); nowDate .setTime( new Date();int year = nowDate .get(Calendar. YEAR);int month = nowDate .get(Calendar. MONTH)+1;cal .setYear( year );c

14、al .setMonth( month );cal .getCalender();System. out .println("nprevious(p) or next(n) month:");char ch;Scanner scanner = new Scanner(System. in ); ch = scanner .next().charAt(0); / 从键盘接受一个字符 while ( ch ='n' | ch ='p' )if ( ch='n' ) if ( month <12) month = month

15、+1; cal .setMonth( month ); cal .getCalender();else year = year +1; month = 1; cal .setYear( year ); cal .setMonth( month ); cal .getCalender();if ( ch='p' )if ( month >1) month = month -1; cal .setMonth( month ); cal .getCalender();else year = year -1; month = 12; cal .setYear( year ); c

16、al .setMonth( month ); cal .getCalender();/System.out.println("n");System. out .println( "nprevious(p) or next(n) month:" );Scanner scanner2 = new Scanner(System. in ); ch = scanner2 .nextLine().charAt(0);实验题4 正则表达式的使用某网站注册了若干用户( User 类),注册过程中,必须要检查用 户的以下输入信息:用户名( userName)、密码 (u

17、serCode) 、邮箱 (email) 、电话(phoneNumber)。用户输入时,这 4个信息都被保存成 String 类型。这 4 个字段的规则如下:用户名:用户名是由字母、数字或“ _”组成,长度不少于 6 位, 不多于 30 位;密码:包含字母、数字、标点符号在内的 816 位字符;邮箱:2,3$"电话: 11 位数字字符串基本要求写一个类 UserFilter 用于判断一个 User 对象的 4 个成员变量是 否满足要求。package question4;2345678 夫S1011121314&15161718192021 22public class Us

18、er userName; userCode; email phoneNUmber;String 5七ring St ring Stringpublic/ publicUser() TOOO自力生成的构啬函数存根static void Check(String regex, String str) if(!str.matches(negex)System. println("格式错渓";elseSystem.outprintln( "tg式正循H);需输入用户名 gdjmlfj 格式错误 请输入密码 fewagwa 格式正确 请输入邮箱 rehehtedgfd 格式错误 请输入电话 gvrhbtxfd 长度不符舍要求

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1