博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中自定义异常& 编译时异常&运行时异常
阅读量:2441 次
发布时间:2019-05-10

本文共 2863 字,大约阅读时间需要 9 分钟。

编译时异常&运行时异常

A: 编译时期异常:是Exception的子类,非RuntimeExcpetion的子类,在编译时期必须处理

B:RuntimeException和他的所有子类异常,都属于运行时期异常。NullPointerException,ArrayIndexOutOfBoundsException等都属于运行时期异常.

运行时期异常的特点:

方法中抛出运行时期异常,方法定义中无需throws声明,调用者也无需处理此异常

运行时期异常一旦发生,需要程序人员修改源代码.

package com.itheima_01;import java.io.FileWriter;import java.io.IOException;/* * 异常的分类:		运行时期异常:RuntimeException的子类就是运行时期异常,在编译时期可以自由选择处理或者不处理		编译时期异常:是Exception的子类,非RuntimeExcpetion的子类,在编译时期必须处理  */public class ExceptionDemo6 {	public static void main(String[] args) {		//System.out.println(2 / 0);				//String s = null;		//System.out.println(s.length());				try {			FileWriter fw = new FileWriter("a.txt");		} catch (IOException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}}

自定义异常

需求:写一个方法,接受考试成绩,如果考试成绩的范围在0-100之间则属于正常,否则属于异常

案例代码:

当成绩0~100范围内,抛出一个运行时异常或者编译时异常,阻止程序继续向下执行

package com.itheima_01;/* * 需求:写一个方法,接受考试成绩,如果考试成绩的范围在0-100之间则属于正常,否则属于异常 *  * throws:处理异常的一种方式,把异常抛出,由调用者来处理 * throw:制造异常的方式,并且结束方法 *  * 注意:如果抛出(throw)的是编译时期异常,必须在方法声明处抛出(throws) *  * 如何自定义一个异常类呢? * 		非常简单,写一个类去继承Exception或者RuntimeException,然后实现多个构造即可 *  *  */public class ExceptionDemo7 {	public static void main(String[] args) {		/*boolean flag = checkScore(-10);		System.out.println(flag);*/								try {			checkScore(110);		} catch (Exception e) {			//System.out.println(e.getMessage());			e.printStackTrace();		}						//checkScore(110);	}	/*	public static boolean checkScore(int score) {		//判断考试成绩是否符合范围,如果不符合则返回false		if(score < 0 || score > 100) {			return false;		}				//符合		return true;			}*/		public static void checkScore(int score) throws Exception {		if(score < 0 || score > 100) {			throw new RuntimeException("考试成绩不符合要求");			//throw new Exception("考试成绩不符合要求");		} 				System.out.println("考试成绩符合要求");	}		}

 我们也可以自定义一个编译时异常或者运行时异常抛出:

package com.itheima_01;public class MyException extends /*RuntimeException*/ Exception{	public MyException() {		super();		// TODO Auto-generated constructor stub	}	public MyException(String message) {		super(message);		// TODO Auto-generated constructor stub	}	/*public MyException() {		super();	}		public MyException(String s) {		super(s);	}*/		}package com.itheima_01;/* * 需求:写一个方法,接受考试成绩,如果考试成绩的范围在0-100之间则属于正常,否则属于异常 *  * throws:处理异常的一种方式,把异常抛出,由调用者来处理 * throw:制造异常的方式,并且结束方法 *  * 注意:如果抛出(throw)的是编译时期异常,必须在方法声明处抛出(throws) *  * 如何自定义一个异常类呢? * 		非常简单,写一个类去继承Exception或者RuntimeException,然后实现多个构造即可 *  *  */public class ExceptionDemo7 {	public static void main(String[] args) {		/*boolean flag = checkScore(-10);		System.out.println(flag);*/								try {			checkScore(110);		} catch (Exception e) {			//System.out.println(e.getMessage());			e.printStackTrace();		}						//checkScore(110);	}	 	public static void checkScore(int score) throws Exception {		if(score < 0 || score > 100) {		 			throw new MyException("考试成绩不符合要求");		} 				System.out.println("考试成绩符合要求");	}		}

转载地址:http://ynjqb.baihongyu.com/

你可能感兴趣的文章
利用Apache+PHP3+MySQL建立数据库驱动的动态网站(转)
查看>>
C#中实现DataGrid双向排序(转)
查看>>
利用C语言小程序来解决大问题(转)
查看>>
简单方法在C#中取得汉字的拼音的首字母(转)
查看>>
.NET开发之中的17种正则表达式小结(转)
查看>>
编程秘籍:使C语言高效的四大绝招(转)
查看>>
配置XDM--一种Linux的图形登录界面(转)
查看>>
计算机加锁 把U盘变成打开电脑的钥匙(转)
查看>>
Fedora Core 4 基础教程 (上传完毕)(转)
查看>>
删除MSSQL危险存储过程的代码(转)
查看>>
红旗软件:树立国际的Linux品牌(转)
查看>>
Linux学习要点(转)
查看>>
影响mysqld安全的几个选项(转)
查看>>
最新版本Linux Flash 9 Beta开放发布(转)
查看>>
mysql事务处理(转)
查看>>
Fedora 显示设备配置工具介绍(转)
查看>>
FREEBSD 升级及优化全攻略(转)
查看>>
系统移民须知:Linux操作系统安装要点(转)
查看>>
在redhat系统中使用LVM(转)
查看>>
Gentoo 2005.1 完整的USE参数清单中文详解(转)
查看>>