JAVA第五次实训作业
1. 编写一个类ExceptionTest,在main方法中使用try-catch-finally语句结构实现:
² 在try语句块中,编写两个数相除操作,相除的两个操作数要求程序运行时用户输入;
² 在catch语句块中,捕获被0除所产生的异常,并输出异常信息;
在finally语句块中,输出一条语句。
package shixun; import java.util.Scanner; public class ExceptionTest { public static void main(String[] args) { // TODO 自动生成的方法存根 Scanner input = new Scanner(System.in); System.out.println("请输入除数:"); int op1 = input.nextInt(); System.out.println("请输入被除数:"); int op2 = input.nextInt(); int result = 0; try { result = op1 / op2; } catch (ArithmeticException e) { e.printStackTrace(); } finally { System.out.println("异常处理"); } System.out.println(result); } }
2. 编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。
package yic; import java.util.Scanner; public class shiyan1 { @SuppressWarnings("resource") public static void main(String[] args) { // TODO Auto-generated method stub double r; Scanner s = new Scanner(System.in); while(true){ try{ r = Double.parseDouble(s.next()); if(r<0) throw new NegativeException(); else if(r<1.0||r>100.0) throw new NumberRangeException(); else{ System.out.println("面积是"+3.14*r*r); break; } }catch(NumberFormatException e){ System.out.println("非数值异常"); }catch(NegativeException e){ System.out.println("负数异常"); }catch(NumberRangeException e){ System.out.println("越界异常"); } } } } class NegativeException extends Exception{ /** * */ private static final long serialVersionUID = 1L; public NegativeException(){ super(); } public NegativeException(String msg){ super(msg); } public NegativeException(String msg, Throwable cause){ super(msg,cause); } public NegativeException(Throwable cause){ super(cause); } } class NumberRangeException extends Exception{ public NumberRangeException(){ super(); } public NumberRangeException(String msg){ super(msg); } public NumberRangeException(String msg, Throwable cause){ super(msg,cause); } public NumberRangeException(Throwable cause){ super(cause); } }
3.为类的属性“身份证号码.id”设置值,当给的的值长度为18时,赋值给id,当值长度不是18时,抛出IllegalArgumentException异常,然后捕获和处理异常,编写程序实现以上功能。
package yic; public class shiyan2 { private String id; public void setid(String id) { if(id.length()==18) this.id=id; else throw new IllegalArgumentException("参数长度应为18!"); } public static void main(String[] args) { // TODO Auto-generated method stub shiyan2 t =new shiyan2(); try { t.setid("0123456789123456789"); }catch(IllegalArgumentException ie) { System.out.println(ie.getMessage()); }finally { System.out.println("结束"); } } }