异常

异常:
异常是代码执行的过程中可能遇到的问题,导致程序不能正常运行了。
异常会是出现的,程序员应该提前处理这种可能出现异常。
异常处理体现了程序设计的健壮性和稳定性。


早期的异常处理是通过
if(异常){
//处理
}elseif(异常){
//处理
}


这个不靠谱。程序有成千上万种,程序员要提前处理,所以这种不靠谱

假如不处理代码出现的异常,程序会将异常直接抛给JVM虚拟机,程序就会立即崩溃。

Exception:一切异常的父类。代表了java中的所有异常的父类。


出现异常以后的代码不会进行,异常必须处理(异常处理捕获了才会执行后面的代码。)


常见的异常:(ArrayIndexOutOfBoundsException【数组越界异常】、ArithmeticException【运行时异常】、NullPointerException【空指针异常】、ClassCastException【类型强转异常】、NumberFormatException【数字转换类型异常】)


String str=null;
System.out.prinln(str.length());//空指针异常

企业里面会用Exception来捕获打印出来看什么异常。

代码:
package exception_01;


public class Exception_01 {
public static void main(String[] args) {
	chu(5,0);
}


public static void chu(int a,int b){
	int c=0;
	try {
		c=a/b;
		System.out.println(c);
	} catch (Exception e) {
		System.out.println("请输入正确的数字:");
		
	}
	
	System.out.println("哈哈");
	
	
}
}





异常(Exception)的分类:
Throwable:
-- Error:
-- Exception:其他、RuntimeException(运行时的异常)


RuntimeException:运行时异常,运行的时候出现的异常。
 运行时异常不捕获编译时也不会报错。


面试:
异常可分为:必须检查异常,非必须检查异常。针对于编译时。
--- 必须检查异常编译时必须进行捕获,否则报错。
--- 非必须检查异常可以捕获也可以不捕获都不会报错。
RuntimeException异常或其子类异常就是非必须检查异常。
其他Exception异常或者Exception本身就是必须检查异常。
必须检查异常:InputStream is =new fileInputStream(new File("c:/...."));


throws关键字:


throws Exception抛出去让外面处理异常


throws写在方法后面的
方法的完整格式:
【修饰符】【static】<返回值>方法名【throws 异常类型】(形参列表){
//代码
}
将方法体中可能出现的异常都抛出去。
--- 谁调用这个方法出现的异常就抛给谁,这个异常就throws给谁


如果方法抛出来throws出来的必须检查异常
--- 要么方法自己立即捕获
--- 要么方法不管通过throws继续往外抛给上一级调用者
这个时候调用者就必须捕获或者继续往外抛


throw:创建一个异常对象,然后从当前抛出throw new 异常类型(xx);
throws:用在方法后面,将方法中的异常抛给上一级调用者。


finally关键字
try{

}catch(异常类型 e){
e.printStackTrace();
}finally{
//代码块
//无论什么情况,最终都要最后执行一次代码。
}


finally可以出现0-1次


finally作用:
一般用于在程序执行完最后做一些事情
比如:最后关闭程序在运行过程中使用的资源。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mc19

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值