javaSE_day11_异常

 

异常的概述

异常就是程序中出现的不正常的现象(错误与异常)

在Java中使用Exception类来描述异常

Throwable是Java 语言中所有错误或异常的超类,即祖宗类

Exception有继承关系,它的父类是Throwable

异常继承体系:

Throwable: 它是所有错误与异常的超类(祖宗类)

     |- Error 错误

     |- Exception 编译期异常,进行编译JAVA程序时出现的问题

           |- RuntimeException 运行期异常, JAVA程序运行过程中出现的问题

异常与错误的区别:

异常:指程序在编译、运行期间发生了某种异常(XxxException),我们可以对异常进行具体的处理。若不处理异常,程序将会结束运行

错误:指程序在运行期间发生了某种错误(XxxError),Error错误通常没有具体的处理方式,程序将会结束运行。Error错误的发生往往都是系统级别的问题,都是jvm所在系统发生的,并反馈给jvm的。我们无法针对处理,只能修正代码

异常处理的两种方式:

出现问题,自己解决 try…catch…finally

try{

可能出现异常的代码

} catch(异常类名  对象名){

   通常我们只使用一个方法:printStackTrace打印异常信息

} finally {

异常操作中一定要执行的代码

}

出现问题,别人解决 throws

格式:

修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2,...{}

public void method() throws Exception{}

 

异常分类

异常的根类是Throwable,其下有两个子类:Error与Exception,平常所说的异常指Exception。

严重错误Error,无法通过处理的错误

编译时异常Exception,编译时无法编译通过。如日期格式化异常

运行时异常RuntimeException,是Exception的子类,运行时可能会报错,可以不处理。如空指针异常

自定义异常:

如果Java没有提供你需要的异常,则可以自定义异常类

定义方法:编译时异常继承Exception,运行时异常继承RuntimeException

格式:

Class 异常名 extends Exception{ //或继承RuntimeException

public 异常名(){

}

public 异常名(String s){

super(s);

}

}

例:

//自定义异常类
class NoAgeException extends Exception{
	NoAgeException() {
		super();
	}

	NoAgeException(String message)	{
		super(message);
	}
}

 

//Person类
class Person{
	private String name;
	private int age;
	Person(String name,int age) throws NoAgeException	{
		//加入逻辑判断。
		if(age<0 || age>200)		{
			throw new NoAgeException(age+",年龄数值非法");
		}
		this.name = name;
		this.age = age;
	}
	//定义Person对象对应的字符串表现形式。覆盖Object中的toString方法。
	public String toString()	{
		return "Person[name="+name+",age="+age+"]";
	}
}

 

//测试类
class ExceptionDemo{
	public static void main(String[] args) {
		try {
			Person p = new Person("xiaoming",20);
			System.out.println(p);
		}
		catch (NoAgeException ex){
			System.out.println("年龄异常啦");
		}
		System.out.println("over");
	}
}

 

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值