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

上传人:b****3 文档编号:27029677 上传时间:2023-06-25 格式:DOCX 页数:11 大小:195.17KB
下载 相关 举报
实验3 异常处理和常用实用类.docx_第1页
第1页 / 共11页
实验3 异常处理和常用实用类.docx_第2页
第2页 / 共11页
实验3 异常处理和常用实用类.docx_第3页
第3页 / 共11页
实验3 异常处理和常用实用类.docx_第4页
第4页 / 共11页
实验3 异常处理和常用实用类.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

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

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

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

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

实习3异常处理和常用实用类

实验目的

(1)掌握Java的异常处理机制及相关实现方法

(2)掌握常用实用类的使用,熟悉使用JDK_API进行软件开发;

(3)掌握Java中正则表达式的基本用法。

实验题1try-catch练习:

在程序中产生一个ArithmeticException类型被0除的异常,并用catch语句捕获这个异常。

捕获到异常后在catch代码段中调用该异常对象的getMessage()、toString()、printStackTrace(),结合jdk_api,说明三者的区别。

packagequestion1;

publicclassArithmeticException{

publicstaticvoidmain(Stringargs[]){

try{

intm=1;

intn=1/0;

}catch(Exceptione){

//TODO:

handleexception

System.out.println("异常是:

"+e.getMessage());

System.out.println("异常是:

"+e.toString());

e.printStackTrace();

}

}

}

答:

getMessage的作用是返回此throwble的详细消息字符串;

toString的作用是返回此throwble的简短描述。

结果是此对象类的名字,冒号和一个空格和调用此对象getLocalizedMessage()方法的结果。

如果getLocalizedMessage返回null,则只返回类名称。

printStackTrace将此throwable及其追踪输出至标准错误流。

此方法将此Throwable对象的堆栈跟踪输出至错误输出流,作为字段System.err的值。

输出的第一行包含此对象的toString()方法的结果。

剩余行表示以前由方法fillInStackTrace()记录的数据。

实验题2用户自定义异常:

编写一个程序,用来检查输入的字符串是否含有非英文字符(即A-Z和a-z以外的字符)。

1.定义一个异常类IllegalCharacterException,让其继承异常类Exception;

2.写一个CheckString类,为其添加静态方法check(Stringstr),当str中含有非英文字符时,不做异常处理,只将产生的异常抛出,抛出的异常参数message为:

“字符串含有非英文字符!

”;

3.在主类ExceptionTest中进行测试,输入多个字符串,使用try-catch对捕获的异常进行处理。

实验题3常用实用类Calendar练习。

编写一个能够显示日历的程序,程序效果截图如下:

[基本要求]

1.默认显示系统当前月份,接受标准输入,当键盘输入“p”并回车时,显示上一月日历,当键盘输入“n”并回车时,显示下一月日历;

2.使用Calendar类开发该程序,在API中熟悉Calendar类的常量、get方法、set方法,roll()等基础内容之后再开发程序。

packageCalendar;

importjava.util.*;

publicclassCalendarBean{

intyear=0;

intmonth=0;

voidsetYear(intyear){

this.year=year;

}

voidsetMonth(intmonth){

this.month=month;

}

publicvoidgetCalender(){

String[]a=newString[35];

Calendarrili=Calendar.getInstance();

rili.set(year,month-1,1);

intweekDay=rili.get(Calendar.DAY_OF_WEEK)-1;//返回当前日期所对应的星期,1表示是星期日,以此类推

intday=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=28;

}else{

day=29;

}

}

for(inti=0;i

a[i]="";

}

for(inti=weekDay,n=1;i

a[i]=String.valueOf(n);//将int转化为String

n++;

}

for(inti=weekDay+day;i

a[i]="";

}

System.out.println(year+"年"+month+"月");

char[]str="日一二三四五六".toCharArray();

for(charc:

str){//输出日历的最上方一行

System.out.printf("%3s",c);

}

for(inti=0;i

if(i%7==0){

System.out.println("");

}

System.out.printf("%4s",a[i]);

}

}

}

packageCalendar;

importjava.util.*;

publicclassCalendarTest{

publicstaticvoidmain(String[]args){

//TODO自动生成的方法存根

CalendarBeancal=newCalendarBean();

CalendarnowDate=Calendar.getInstance();

nowDate.setTime(newDate());

intyear=nowDate.get(Calendar.YEAR);

intmonth=nowDate.get(Calendar.MONTH)+1;

cal.setYear(year);

cal.setMonth(month);

cal.getCalender();

System.out.println("\nprevious(p)ornext(n)month:

");

charch;

Scannerscanner=newScanner(System.in);

ch=scanner.next().charAt(0);//从键盘接受一个字符

while(ch=='n'||ch=='p'){

if(ch=='n'){

if(month<12){

month=month+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);

cal.setMonth(month);

cal.getCalender();

}

}

//System.out.println("\n");

System.out.println("\nprevious(p)ornext(n)month:

");

Scannerscanner2=newScanner(System.in);

ch=scanner2.nextLine().charAt(0);

}

}

}

实验题4正则表达式的使用。

某网站注册了若干用户(User类),注册过程中,必须要检查用户的以下输入信息:

用户名(userName)、密码(userCode)、邮箱(email)、电话(phoneNumber)。

用户输入时,这4个信息都被保存成String类型。

这4个字段的规则如下:

用户名:

用户名是由字母、数字或“_”组成,长度不少于6位,不多于30位;

密码:

包含字母、数字、标点符号在内的8~16位字符;

邮箱:

"^([a-z0-9A-Z]+[-|\\.]?

)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?

\\.)+[a-zA-Z]{2,3}$"

电话:

11位数字字符串。

[基本要求]

写一个类UserFilter用于判断一个User对象的4个成员变量是否满足要求。

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

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1