码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础知识强化之IO流笔记07:自定义的异常概述和自定义异常实现

时间:2015-09-28 22:14:29      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

1. 开发的时候往往会出现很多问题(java内部系统框架中没有提供这些异常)

比如说:考试成绩必须在0~100之间。

很明显java没有对应的异常,需要我们自己来做一个异常

(1)继承自Exception(编译期)

(2)继承自RuntimeException(运行期)

 

2. 自定义异常的案例:

(1)自定义异常MyException继承自Exception,那么MyException属于编译期异常,如下:

 1 package com.himi.myexception;
 2 
 3 /**
 4  * java不可能对所有的情况都考虑到,所以,在实际开发中,我们可能需要自己定义异常
 5  * 而我们随便写的一个类,是不能作为异常类来看的,要想你的类是一个异常类,就必须继承自Exception或者RuntimeException
 6  * 
 7  * 两种方式:
 8  * A:继承Exception
 9  * B:继承RuntimeException
10  */
11 
12 public class MyException extends Exception{
13 
14     public MyException() {
15         // TODO 自动生成的构造函数存根
16     }
17     public MyException(String message) {
18         super(message);
19     }
20     
21 }

这里MyException构造方法不会写,查看源码,看看其他继承自Exception的异常构造是怎么写的,如下:TimeoutException 

 1 public class TimeoutException extends Exception {
 2     private static final long serialVersionUID = 1900926677490660714L;
 3 
 4     /**
 5      * Constructs a {@code TimeoutException} with no specified detail
 6      * message.
 7      */
 8     public TimeoutException() {}
 9 
10     /**
11      * Constructs a {@code TimeoutException} with the specified detail
12      * message.
13      *
14      * @param message the detail message
15      */
16     public TimeoutException(String message) {
17         super(message);
18     }
19 }

以后遇到自定义一些属性或者其他不会写,我们要类比Android开源的代码中已经写好的类,查看源码,看看人家是怎么写的,依葫芦画瓢

 

(2)Teacher.java如下:

 1 package com.himi.myexception;
 2 
 3 public class Teacher {
 4     public void check (int score) throws MyException {
 5         if(score>100 || score<0) {
 6             throw new MyException("你输入分数不能大于100  或者小于0 ");//这里的MyException是继承自Exception是编译时期异常,必须处理,这里上抛
 7         }else {
 8             System.out.println("你输入的分数是没有问题的");
 9         }
10     }
11 
12 }

 

(3)在编译一个测试类,测试逻辑运行情况,如下:

 1 package com.himi.myexception;
 2 
 3 import java.util.Scanner;
 4 
 5 public class StudentDemo {
 6 
 7     public static void main(String[] args) {
 8         Scanner input = new Scanner(System.in);
 9         System.out.println("请输入学生成绩:");
10         int score  = input.nextInt();
11         Teacher t = new Teacher();
12         try {
13             t.check(score);
14         } catch (MyException e) {
15             // TODO 自动生成的 catch 块
16             e.printStackTrace();
17         }
18 
19     }
20 
21 }

运行效果如下:

技术分享

 

 

 

技术分享

Java基础知识强化之IO流笔记07:自定义的异常概述和自定义异常实现

标签:

原文地址:http://www.cnblogs.com/hebao0514/p/4844999.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!