java异常处理简介_Java异常简介

Java异常简介

异常就是在程序的运行过程中出现的不正常现象导致了程序中断,之前遇到的异常有哪些?

● 空指针异常: NullPointerException

● 类型转换异常:ClassCastException

● 算术异常: ArithmeticException

在java中, 把一些不正常现象进行了抽象, 形成了一些异常类。

333f91db1b819f560087aa3954852d3b.png

在Throwable类的getMessage()/printStackTrace()这两个方法,所有的异常都有。

编译时异常,也称受检异常是指在编译前必须进行预处理, 并不是说这个异常在编译阶段发生,所有的异常都是在运行阶段才可能发生. 就像楼道中必须有灭火器与消防栓, 如果没有这些设备, 就没有安全证, 没有这个安全证,企业就不能生产. 企业必须有火灾的预处理措施, 火灾现在并没有发生。

编译阶段进行语法检查, Java的语法有很多条, 其中一语语法是: 对于受检异常必须进行预处理。

package com.wkcto.chapter02.demo01;

/**

* 运行时异常都是RuntimeException类的子类

* 不需要进行预处理,

* 通过规范的代码进行规避

* @author 蛙课网

*

*/

public class Test01 {

public static void main(String[] args) {

int x = 10;

int y = 2;

//divide(x, y); //10/2=5

//divide(10, 0);//这一行产生了异常,导致了程序中断, 程序不再继续向下执行

divide22(x, y);

divide22(10, 0);

System.out.println("main....end...");

}

//定义方法,计算两个整数的商, 没有判断除数为0的情况

public static void divide( int num1, int num2) {

int result = num1/num2;

System.out.println( num1 + "/" + num2 + "=" + result);

}

//定义方法,计算两个整数的商, 通过判断除数为0避免出现算术异常

public static void divide22( int num1, int num2) {

if ( num2 == 0 ) {

System.out.println("除数不能为0");

return ;//结束方法的执行

}

int result = num1/num2;

System.out.println( num1 + "/" + num2 + "=" + result);

}

}

package com.wkcto.chapter02.demo01;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

/**

* 演示编译时异常

* 受检异常, 受控异常

* @author 蛙课网

*

*/

public class Test02 {

public static void main(String[] args) {

//读取d:/abc.txt文件中的内容, 使用了FileInputStream类

FileInputStream fis = new FileInputStream("d:/abc.txt");

//SUN在定义FileInputStream构造方法时, 通过 throws关键字声明了FileNotFoundException异常,

//这个异常就是受检异常, 即在定义方法时, 通过throws声明的异常

//受检异常在编译前必须进行预处理, 否则编译语法报错

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值