《异常机制处理课件.ppt》由会员分享,可在线阅读,更多相关《异常机制处理课件.ppt(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、异常机制处理异常机制处理 异常类的简介 异常的捕获与处理 throws和throw的使用 定义自己的异常类异常类异常类ExceptionNumberFormatExceptionNullPointerExceptionIOExceptionClassFoundExceptionArithmeticExceptionArrayIndexOutOfBoundsException用用try-catch-finallytry-catch-finally语句捕获和处理异常语句捕获和处理异常 try 语句体 catch(异常错误类型1 变量名)语句体 catch(异常错误类型2 变量名)语句体 final
2、ly语句体基本格式为:异常处理常用方法ngetMessage()该方法返回一个字符串,描述与异常相关的错误信息nprintStackTrace()用于打印显示异常抛出时的堆栈跟踪状态,并将其输到标准错误流中ntoString()返回一个字符串对该异常对象进行简短的描述throws和throw的使用 throws用于通告方法中可能出现的异常 throw用于显示触发异常。通告一个方法可能产生的异常:在方法声明时通过关键字throws来通告,如有多个异常,用逗号隔开。()throws,例如:Public String read()throws IOException;n触发异常格式:throw n其
3、中,throw是关键字,是创建的异常类对象。n例如:throw new IOException();相当于:IOException e=new IOException();throw e;格式:Exception5.java 例题:Exception6.javanimport java.io.IOException;npublic class classnamenstatic int read()throws IOException/成员方法定义n/其它代码nthrow new IOException(Exception demo);/触发异常nnpublic static void main
4、(String args)ntry/捕获异常n/其它代码nread();ncatch(IOException e)/异常处理nSystem.out.println(e);练习题n定义一个Example类,类中定义一个成员方法sum(),计算输入数据的连加,当输入的数据小于5时,抛出“输入数据太小”的异常,否则输出方法结果。npublic class Example n public void ok(int k)throws Exceptionn int sum=0;n if(k1)throw new Exception(输入数据太小!);n else System.out.println(k+
5、输入成功哦!);n for(int i=1;i=k;i+)n sum=sum+i;n System.out.println(sum);n n public static void main(String args)n Example a=new Example();n tryn a.ok(m);n catch(Exception e)System.out.println(Exception:+e.getMessage();n 定义自己的异常类 创建自定义异常的基本步骤:n1.定义一个新的异常类,其必须继承Exception类、Exception类的子类或用户自定义的其他异常类。定义的格式:cl
6、ass 自定义异常类名 extends 父异常类名 语句体n2.为新的异常类定义属性和方法,或重载父类的属性和方法,使之能够体现出程序中出现这种异常的信息。n基本格式:public class NumberException extends Exception public NumberException()super();public NumberException(String s)super(s);n3.抛出用户自定义的异常。用户自定义异常不可能依靠系统自动抛出,而必须通过throw语句抛出异常,通常是通过条件判断确定是否抛出这个异常类的新对象。抛出用户自定义异常的格式:返回类型 方法名
7、(参数1,参数2,)throw 自定义异常类 if(条件判断)throw(new 自定义异常类名(this);例题n自定义异常类应用于求两个1000以内正整数和的程序中。通过键盘输入两个数字,如果两个都在1000以内的正整数,则计算它们的和,否则显示错误信息。nimport java.io.*;npublic class Exception7npublic static void main(String args)n trynSystem.out.println(两个数的和为:+sum(num1,num2);ncatch(NumberRangException e)nSystem.out.pr
8、intln(e.getMessage();ncatch(NumberFormatException e)nSystem.out.println(输入格式不对,请输入数字!);ncatch(IOException e)n public static int sum(int num1,int num2)throws NumberRangExceptionn if(num11000)|(num21000)n throw(new NumberRangException(键入的数字必须在0到1000之内!);n return num1+num2;n class NumberRangException e
9、xtends Exceptionn public NumberRangException()super();n public NumberRangException(String s)n super(s);作业 设计异常类:假如某项工作对身高要求较严,需要在170cm到180cm之间,如过超出范围都会产生太高太矮的异常。nclass TooShortException extends ExceptionnTooShortException(int height)nsuper(height:+height+you are too short to do this job);nTooShortEx
10、ception()n super(too short);nnclass TooTallException extends ExceptionnnTooTallException(int height)nsuper(height:+height+you are too tall to do this job);nnTooTallException()nsuper(too tall);nclass HeightChecknpublic static boolean check(int height)n throws TooShortException,TooTallExceptionnnif(he
11、ight 180)throw new TooTallException(height);nelse return true;nnnpublic class Exception8npublic static void main(String args)nif(args.length=0)nSystem.out.println(please input a number!);nreturn;ntrynint height=Integer.parseInt(args0);nif(HeightCheck.check(height)nSystem.out.println(height:+height+is ok);ncatch(NumberFormatException e)/数据格式不正确nSystem.out.println(请输入数字作为身高!);ncatch(TooShortException e)/太矮nSystem.out.println(e.getMessage();ncatch(TooTallException e)/太高nSystem.out.println(e.getMessage();n
限制150内