Java基础知识强化之IO流笔记07:自定义的异常概述和自定义异常实现
1. 开发的时候往往会出现很多问题(java内部系统框架中没有提供这些异常)
比如说:考试成绩必须在0~100之间。
很明显java没有对应的异常,需要我们自己来做一个异常。
(1)继承自Exception(编译期)
(2)继承自RuntimeException(运行期)
2. 自定义异常的案例:
(1)自定义异常MyException继承自Exception,那么MyException属于编译期异常,如下:
package com.himi.myexception; /**
* java不可能对所有的情况都考虑到,所以,在实际开发中,我们可能需要自己定义异常
* 而我们随便写的一个类,是不能作为异常类来看的,要想你的类是一个异常类,就必须继承自Exception或者RuntimeException
*
* 两种方式:
* A:继承Exception
* B:继承RuntimeException
*/ public class MyException extends Exception{ public MyException() {
// TODO 自动生成的构造函数存根
}
public MyException(String message) {
super(message);
} }
这里MyException构造方法不会写,查看源码,看看其他继承自Exception的异常构造是怎么写的,如下:TimeoutException (编译期异常)
public class TimeoutException extends Exception {
private static final long serialVersionUID = 1900926677490660714L; /**
* Constructs a {@code TimeoutException} with no specified detail
* message.
*/
public TimeoutException() {} /**
* Constructs a {@code TimeoutException} with the specified detail
* message.
*
* @param message the detail message
*/
public TimeoutException(String message) {
super(message);
}
}
以后遇到自定义一些属性或者其他不会写,我们要类比Android开源的代码中已经写好的类,查看源码,看看人家是怎么写的,依葫芦画瓢。
(2)Teacher.java如下:
package com.himi.myexception; public class Teacher {
public void check (int score) throws MyException {//抛出异常(交给调用者处理)
if(score>100 || score<0) {
throw new MyException("你输入分数不能大于100 或者小于0 ");//这里的MyException是继承自Exception是编译时期异常,必须处理,这里上抛
}else {
System.out.println("你输入的分数是没有问题的");
}
} }
(3)在编译一个测试类,测试逻辑运行情况,如下:
package com.himi.myexception; import java.util.Scanner; public class StudentDemo { public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入学生成绩:");
int score = input.nextInt();
Teacher t = new Teacher();
try {
t.check(score);
} catch (MyException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} } }
运行效果如下:
Java基础知识强化之IO流笔记07:自定义的异常概述和自定义异常实现的更多相关文章
- Java基础知识强化之IO流笔记66:Properties的概述 和 使用(作为Map集合使用)
1. Properties的概述 Properties:属性集合类.是一个可以和IO流相结合使用的集合类. 该类主要用于读取以项目的配置文件(以.properties结尾的文件 和 xml文件). ...
- Java基础知识强化之IO流笔记17:FileOutputStream构造方法使用
1. 可以参照之前写的笔记: Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流) 2. FileOutputStream(常用的)构造方法: FileOu ...
- Java基础知识强化之IO流笔记71:NIO之 NIO的(New IO流)介绍
1. I/O 简介 I/O ( 输入/输出 ):指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键,因而所有 I/O 的主体实际上是内置在操作系统中的. ...
- Java基础知识强化之IO流笔记68:Properties和IO流集合使用
1. Properties和IO流集合使用 这里的集合必须是Properties集合: public void load(Reader reader):把文件中的数据读取到集合中 public v ...
- Java基础知识强化之IO流笔记22:FileInputStream / FileOutputStream 复制文本文件案例1
1. 使用字节流FileInputStream / FileOutputStream 复制文本文件案例: 分析: (1)数据源:从哪里来 a.txt -- 读取数据 -- FileInpu ...
- Java基础知识强化之IO流笔记16:IO流的概述和分类
1. IO流的分类 流向: (1)输入流:读取数据到内存 (2)输出流:写入数据到硬盘(磁盘) 操作的数据类型: (1)字节流:操作的数据是字节 ...
- Java基础知识强化之IO流笔记01:异常的概述和分类
IO流操作的时候会出现很多问题,java中叫作异常,所以我们先介绍一下异常: 1. 程序的异常:Throwable(Throwable类是java中所有异常或错误的超类) (1)严重问题:Error ...
- Java基础知识强化之IO流笔记42:IO流总结(图解)
1. IO流总结(图解)
- Java基础知识强化之IO流笔记83:NIO与IO
当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异.它们的使用场景,以及它们如何影响您的代 ...
随机推荐
- dedecms设置文章分页后,标题会带有序号的解决方法
至于删除分页后标题后面的序号,找到include/arc.archives.class.php 打开,找到 if($i>1) $this->Fields['title'] = $this- ...
- 【Linux】常用命令
一.文件结构 /: 根目录 /bin: 系统所需要的那些命令位于此目录. /boot: Linux的内核及引导系统程序所需要的文件目录,GRUB或LILO系统引导管理器也 ...
- Swiper的简单实用方法
最近项目中有用到一个非常强大的组件idangerous.swiper.js的组件,这个组件能够实现幻灯片的播放效果,而且有各种3D效果,大家可以去试一下,效果很不错的说! 这是这个项目的api文档:h ...
- NSDate 总结日期操作
IOS Object-c NSDate总结日期操作 //NSDate //1, 创建NSDate对象 NSDate *nowDate = [NSDate date]; NSLog(@"%@& ...
- Obj-C的hello,world 2
https://github.com/facebook/facebook-ios-sdk/blob/master/src/FBAppEvents.h + (void)logEvent:(NSStrin ...
- 三种常见字符编码简介:ASCII、Unicode和UTF-8
什么是字符编码? 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255( ...
- BZOJ 3091 城市旅行
Description Input Output Sample Input 4 5 1 3 2 5 1 2 1 3 2 4 4 2 4 1 2 4 2 3 4 3 1 4 1 4 1 4 Sample ...
- PSoC电容式触摸感应技术
PSoC是由Cypress半导体公司推出的具有数字和模拟混合处理能力的可编程片上系统芯片,某些系列的PSoC(如CY8C21X34系列),由于其内部配备的特殊资源,使得它可以很容易地实现电容式触摸感应 ...
- BAT 批处理实现循环备份N天文件夹
@echo off set today=%date:~0,4%%date:~5,2%%date:~8,2% xcopy /E /I E:\aaa e:\test\%today% for /f &qu ...
- Microsoft Office 2013 激活方法
Microsoft Office 2013 激活方法 Microsoft Office 2013是微软的新一代Office办公软件,全面采用Metro界面,包括Word.PowerPoint.Ex ...