您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > linux/Unix相关 > java异常处理作业(20121113132845)
Java异常处理作业孙月巧1、参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。【提示:用错误数据测试,即可得到异常类名,运行时主方法参数输入abc测试】packageNovember;importjava.util.Scanner;publicclassStringIndexOutOf{publicstaticvoidmain(Stringargs[]){System.out.println(请输入一个字符串:);try{Scannerreader=newScanner(System.in);Stringstr=reader.nextLine();System.out.println(第四个字符为+str.charAt(3));intaa=Integer.parseInt(str);System.out.println(平方为+aa*aa);}catch(StringIndexOutOfBoundsExceptione){System.out.println(您输入的数值下标越界);}catch(NumberFormatExceptionnfe){System.out.println(您输入的不是数字);}}}2、从命令行得到5个整数,放入一整型数组,然后打印输出,要求:如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参数不足5个的异常(数组越界),显示“请输入至少5个整数”。packageNovember;importjava.util.Scanner;publicclassTest2{publicstaticvoidmain(String[]args){System.out.println(请输入五个整数:);try{inta=Integer.parseInt(args[0]);intb=Integer.parseInt(args[1]);intc=Integer.parseInt(args[2]);intd=Integer.parseInt(args[3]);inte=Integer.parseInt(args[4]);}catch(NumberFormatExceptionn){System.out.println(请输入整数);}catch(ArrayIndexOutOfBoundsExceptione){System.out.println(请输入至少5个整数);}catch(Exceptione){System.out.println(e.getMessage());}}}3、写一个方法voidsanjiao(inta,intb,intc),判断三个参数是否能构成一个三角形,如果不能则抛出异常IllegalArgumentException,显示异常信息a,b,c+”不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。packageNovember;importjava.util.Scanner;publicclassTest3{voidsanjiao(){inta;intb;intc;System.out.println(请输入三条边长);Scannerreader=newScanner(System.in);a=reader.nextInt();b=reader.nextInt();c=reader.nextInt();if(a+bc&&a+cb&&b+ca){System.out.println(三角形的边长分别为+a=+a++b=+b++c=++c);}else{System.out.println(不能构成三角形);}if(a0||b0||c0){System.out.println(三条边不能为负);}}publicstaticvoidmain(String[]args){Test3t=newTest3();try{t.sanjiao();}catch(NumberFormatExceptionnfe){System.out.println(请输入正整数);}catch(IllegalArgumentExceptioniae){System.out.println(不能构成三角形!);}catch(Exceptione){System.out.println(-----程序出错-----);}}}4、自定义类Sanj,其中有成员x,y,z,作为三边长,构造方法Sanj(a,b,c)分别给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,这2个方法中当三条边不能构成一个三角形时要抛出自定义异常NotSanjiaoException,否则显示正确信息。在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常。importjava.util.InputMismatchException;importjava.util.Scanner;classTest{privatedoublex;privatedoubley;privatedoublez;publicTest(doublea,doubleb,doublec){this.x=a;this.y=b;this.z=c;}//面积publicdoublegetArea(){return(1/4.0)*Math.sqrt(((x+y+z)*(x+y-z)*(x+z-y)*(y+z-x)));}//展示信息publicvoidshowInfo(){System.out.println(边长分别为:+x+,+y+,+z);}}classNotSanjiaoExceptionextendsException{publicNotSanjiaoException(){super(不能构成三角形!);}}publicclassTest4{publicstaticvoidmain(String[]args){Scanners=newScanner(System.in);System.out.println(请输入三个边);try{doublex=s.nextDouble();doubley=s.nextDouble();doublez=s.nextDouble();if(!(x+yz&&x+zy&&y+zx)){thrownewNotSanjiaoException();}Testsj=newTest(x,y,z);System.out.println(sj.getArea());sj.showInfo();}catch(NotSanjiaoExceptione){System.out.println(e.getMessage());}catch(InputMismatchExceptione){System.out.println(非法字符!);}}}
本文标题:java异常处理作业(20121113132845)
链接地址:https://www.777doc.com/doc-7028411 .html