Java基础---异常

1.异常的概念

  • 异常就是程序中的一些错误。但是不是所有的错误都是异常,并且异常是可以处理和避免的。

2.异常分类

  • 检查性异常
    • 检查性异常是由用户错误引起的异常,这也是程序员可以预见的,而且此种异常在编译的时候不会被忽略的。
  • 运行时异常
    • 运行时异常是可以避免的,编译的时候会被忽略
  •  常见的异常(JDK内置异常)
    • 运行时异常:  
      • ArithmeticException:算数运算异常
      •  NullPointerException:空指针异常
      •  ArrayIndexOutOfBoundsException:数组越界异常
      • NumberFormatException:数字格式化异常
      •  ClassCastException:类型转换异常
      • InputMismatchException:键盘输入类型不一致异常
      • StringIndexOutOfBoundsException:字符串越界异常
    • 检查性异常
      •  ClassNotFoundException:找不到类异常
      •  FileNotFoundException:找不到文件异常

3.处理异常

3.1 使用try/catch处理

语法:

try{
  //可能出现异常的代码  
}catch(ExceptionType e){
    //catch块
}

注意事项:
1.try中的代码块如果没有出现任何异常吗,那么catch块就不会执行。只有try出现了异常catch才会执行。而且catch只会针对指定的异常进行捕获和处理。
2.当try中出现了异常会阻止try异常点后的代码的执行,直接进入catch块(把异常对象传递给catch块)。
3.try中尽量包含少的代码。
4.try和catch块之间不允许存在任何代码。

3.2 多个异常处理

语法:

try{
  //可能出现异常的代码  
}catch(ExceptionType e){
    //catch块
}catch(ExceptionType e){
    //catch块
}catch(ExceptionType e){
    //catch块
}...

3.3 finally关键字:

finally关键字是用于创建在try/catch后的代码块。不管try是否出现异常都会执行finally代码块。一般用于事故处理。

语法:

try{
  //可能出现异常的代码  
}catch(ExceptionType e){
    //catch块
}finally {
   //后续代码
}

注意事项:

  • try和catch是相互依赖的,不能单独使用
  • finally是可写可不写
  • try和catch和finally块之间不允许存在任何代码 

4. 抛出异常

直接使用throws关键字进行抛出异常。

public void method() throws FileNotFoundException {
	FileInputStream fileInputStream = new FileInputStream("D://a.txt");
}

异常可以不进行try/catch捕获,直接使用throws关键字进行抛出,但是谁调用此方法谁处理
但是不推荐使用此方式(不是说不使用此方式,是不使用此方式把异常抛给别人,在自己的业务范围内可以抛出)。在开发中谁的异常谁处理

5. 自定义异常

5.1 创建自定义异常

语法:

public class 类名 extends Exception{
   
   //构造方法 
    public 类名(形参类型 变量名){
        super(变量名);
    }
}

5.2 使用自定义异常类

public void 方法名 throws 异常类型 {
    if()){
        
    }else if()){
        throw new 异常类型; //产生一个异常
    }else{
        throw new 异常类型; //产生一个异常
    }
}

5.3 throw和throws的区别

throw和throws都是Java中处理异常的关键字,区别是throw用于抛出异常对象,主要用于代码中手动抛出异常,throws用于声明方法可能会抛出的异常。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值