java-(异常)try-catch-fianlly

先看看百度里面给的图片吧。

在这里插入图片描述

异常的出现以及处理
在这里插入图片描述

异常的分类

用户造成的异常

这种就无法避免了,因为用户的行为,我无法控制,但是可以进行提醒。

程序员造成的异常

这种异常就要避免,能catch就catch,否则就throws.

异常的根基Throable在这里插入图片描述

子类Error,目前我还没有遇到过。因为这个是jvm虚拟机抛出的严重问题。一般不可处理

在这里插入图片描述

Execption :一般可处理的异常。
这里给一篇比较好一点的文章吧。
try-catch-finally

空指针异常

这里有一篇写的比较好的空指针异常文章。
https://www.cnblogs.com/ttflove/p/6033393.html

产生原因:

  • 引用类型,常见的是对象没有开辟空间,那么就会赋值给一个默认值null。结果你给属性赋值和调用方法就会报空指针异常。
    引用类型:目前我知道的有String, int [ ] arr , 对象。
    null就是引用类型的默认值,这个可以通过基本数据类型像int 默认值为0,但是实际情况下,基本数据类型不给初值会报错。
    但是因为引用类型可以不用赋初值,所以系统就自己给你赋初值,给null

给个例子吧
先写一个类

public class TestClass {

	public int getNum(int num) {
		return 0;
	}

	public void inputName() {
		System.out.println("输出用户的名字");
	}

	public void add() {
		System.out.println("添加用户信息");
	}
}

再写个main方法

public class TestMain {
	public static void main(String[] args) {
		TestClass test = null ; //赋值给null ,
		TestClass test1 ; //上行代码以及这行代码千万别写,你会被批得狗血淋头。
		test.add(); //调用成员方法。会报空指针异常
	}
}

在这里插入图片描述
解决方法
上面得例子为例,解决方法是在调用该对象时,加个判断语句。

if( test != null ) {
			test.add();
		}

try-catch-finally

有异常语句的代码块才放到try中,
catch可以一个没有,也可以很多。
finally可以没有,最多只能有一个。finally里面的语句一定会执行。

try{
 Thread.sleep(1);
}catch(子类异常名Expecton e){ //子类异常放上面,因为子类异常更加的具体
 //****啥语句
}catch(Expecton e){ //最后写父类Expetion 异常。
 //****啥语句
}
finally{
 //这里的代码一定会执行。
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值