西安邮电大学(计算机学院)Java程序设计课内实验报告实验名称:异常处理专业名称:软件工程班级:学生姓名:学号(8位):指导教师:实验日期:一.实验目的及实验环境掌握Java异常处理的机制。理解异常的概念及其分类,熟练掌握其在程序设计中的应用。二.实验内容1.运行以下程序,输出结果是什么?为什么?classTest1{publicstaticvoidmain(String[]args){try{int[]list=newint[10];System.out.println(“list[10]is”+list[10]);}catch(ArithmeticExceptionex){System.out.println(“ArithmeticException”);}catch(RuntimeExceptionex){System.out.println(“RuntimeException”);}catch(Exceptionex){System.out.println(“Exception”);}}}2.运行以下程序,输出结果是什么?为什么?classTest2{publicstaticvoidmain(String[]args){try{method();System.out.println(“Afterthemethodcall”);}catch(RuntimeExceptionex){System.out.println(“RuntimeException”);}catch(Exceptionex){System.out.println(“Exception”);}}staticvoidmethod()throwsException{System.out.println(1/0);}}3.分别编写两个方法,用来判断一个字符数是否是数字。一个采用不使用异常和一个使用异常。4.设计实现三角形类,在接受参数构造方法中抛出自定义异常IlleagalTriangle。在应用类中接受用户输入(可从main方法参数中提取),构造三角形对象,并捕获异常,提示用户输入正确参数。三.方案设计1-2.按照实验任务书要求操作。3.不使用异常,若该字符ASCII码在48-57则是数字,否则不是;使用异常,若该字符是数字则正常,并输出“是数字”,若不是数字则异常,并输出“不是数字”。4.从键盘上输入三角形三边长,当输入非法数据(非正数)或输入数据不能构成三角形时抛出异常,并提示;当输入正确时输出“Right!”。四.测试数据及运行结果1.输出:RuntimeException2.输出:RuntimeException3.请输入一个字符:123不使用异常:是数字使用异常:是数字请输入一个字符:b不使用异常:不是数字使用异常:不是数字请输入一个字符:2f不使用异常:不是数字使用异常:不是数字4.请输入三条边:357输出:Right!请输入三条边:888输出:Right!请输入三条边:119输出:Illeagatriangle!Pleaseinputright五.总结通过此次实验学习了简单的Java异常处理,理解了几种不同的异常类型,初步了解了异常处理机制。异常只能用于非正常情况。异常处理可以有效提高程序的健壮性,当出现各种故障时能够确保程序从故障中恢复,使程序能正常运行下去。因此在程序当中对异常的处理是不可缺少且十分重要的。六.附录:源代码(电子版)1./*1.运行以下程序,输出结果是什么?*/classTest1{publicstaticvoidmain(String[]args){try{int[]list=newint[10];System.out.println(list[10]is+list[10]);}catch(ArithmeticExceptionex){System.out.println(ArithmeticException);}catch(RuntimeExceptionex){System.out.println(RuntimeException);}catch(Exceptionex){System.out.println(Exception);}}}2./*2.运行以下程序,输出结果是什么?*/classTest2{publicstaticvoidmain(String[]args){try{method();System.out.println(Afterthemethodcall);}catch(RuntimeExceptionex){System.out.println(RuntimeException);}catch(Exceptionex){System.out.println(Exception);}}staticvoidmethod()throwsException{System.out.println(1/0);}}3./*3.分别编写两个方法,用来判断一个字符数是否是数字。一个采用不使用异常和一个使用异常。*/importjava.util.Scanner;publicclasssy8_3{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);System.out.println(请输入一个字符:);Stringstr=sc.next();charch=str.charAt(0);System.out.print(不使用异常:);ishuzi1(ch);System.out.print(使用异常:);ishuzi2(str);}//不使用异常的方法staticvoidishuzi1(charch){if(ch48||ch57){System.out.println(不是数字);}else{System.out.println(是数字);}}//采用抛出异常的方法判断是否为数字staticvoidishuzi2(Stringstr){try{inta=Integer.parseInt(str);System.out.println(是数字);}catch(NumberFormatExceptione){e.printStackTrace();System.out.println(不是数字);}}}4./*4.设计实现三角形类,在接受参数构造方法中抛出自定义异常IlleagalTriangle*/importjava.util.*;//三角形类classilleagatra{publicvoidjudgea(doublea,doubleb,doublec)throwsException{if(a0||b0||c0||a+bc||a+cb||b+ca||a-bc||b-ca||a-cb)thrownewException(a0||b0||c0||a+bc||a+cb||b+ca||a-bc||b-ca||a-cb);}}publicclasssy8_4{publicstaticvoidmain(String[]args){illeagatrao=newilleagatra();doublex,y,z;Scannerread=newScanner(System.in);System.out.print(请输入三条边:);x=read.nextInt();y=read.nextInt();z=read.nextInt();try{o.judgea(x,y,z);System.out.print(Right!);}catch(Exceptione){System.out.println(Illeagatriangle!Pleaseinputright);}}}