异常处理【总结】

灰太狼 2022-05-31 03:46 287阅读 0赞

1. 异常可以分为几类?

答:Java的异常类都是java.lang.Trowable的子类,它派生了两个字类,Error和Exception。前者由系统保留,后者供应用程序使用,

所以一般所说的异常,都是指Exception及其子类。

2. Java的异常处理机制可分为几个步骤?

答:1)抛出(throw)异常:若程序执行过程出现异常,会自动生成一个异常类对象,该对象被提交给Java运行时系统。

2)捕获(catch)异常:当系统收到异常对象,会寻找能处理这一异常的代码,并将异常对象交给其处理。

3)若系统找不到捕获异常的方法,则Java运行时系统将终止,相应的程序将退出。

3. 抛出异常和捕获异常的语法格式?finally语句是什么?

答:格式:

修饰符 返回类型 方法名(参数列表)throw 异常类名列表

try{

语句组;

}catch(异常类名 异常形式参数名){

异常处理语句组;

} catch(异常类名 异常形式参数名){

异常处理语句组;

} catch(异常类名 异常形式参数名){

异常处理语句组;

}finally{

异常处理语句组;

}

注意,finally语句为异常处理提供一个统一的出口,不论在try代码块中是否发生了异常,finally语句都会被执行。

4. 举例,数组越界的异常

答:

  1. public class IndexOutOf {
  2. public static void main(String[] args) {
  3. String words[]= {"words","lisa","gnosed"};
  4. try {
  5. for(int i=0;i<5;i++) {
  6. System.out.println(words[i]);
  7. }
  8. }catch(java.lang.ArrayIndexOutOfBoundsException e) {
  9. System.out.println("index error");
  10. }
  11. finally {
  12. System.out.println("\nit always come here");
  13. }
  14. }
  15. }

5. 如何创建用户自定义异常类?

答:1)声明一个新的异常类,使之以Exception类 或其他某个已经存在的系统异常类 或用户异常类为父类。

2)为新的异常类定义属性和方法,或重载父类德属性和方法。

以下一个自定义异常类,测试登记号码非负性的异常。

  1. class MyException extends Exception{
  2. private String message;
  3. private int id;
  4. public MyException(String message,int id) {
  5. this.message=message;
  6. this.id=id;
  7. }
  8. public int getId() {
  9. return this.id;
  10. }
  11. public String getMesag() {
  12. return this.message;
  13. }
  14. }
  15. public class Test {
  16. void regist(int num) throws MyException{
  17. if(num<0) {
  18. System.out.println("登记号码"+num);
  19. throw new MyException("号码为负值", 3);
  20. }
  21. }
  22. void manage() {
  23. try {
  24. regist(-100);
  25. }catch (MyException e) {
  26. System.out.println("等级失败,出错种类"+e.getId()+
  27. ",原因是"+e.getMesag());
  28. }finally {
  29. System.out.println("本次登记操作结束");
  30. }
  31. }
  32. public static void main(String[] args) {
  33. Test2 t=new Test2();
  34. t.manage();
  35. }
  36. }

测试结果:

  1. 登记号码-100
  2. 等级失败,出错种类3,原因是号码为负值
  3. 本次登记操作结束

发表评论

表情:
评论列表 (有 0 条评论,287人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java异常处理总结

                背景               ![format_png][] 最近专门负责团队的项目质量。我在治理异常日志过程中,总结了一下Java的异常处理。

    相关 异常处理总结

    1. 异常可以分为几类? 答:Java的异常类都是java.lang.Trowable的子类,它派生了两个字类,Error和Exception。前者由系统保留,后者供应用程序