JAVA中的异常和处理

Java中的异常和处理
  • 概念
    • 当程序出现不正常的情况,我们把这种情况统称为异常
  • java中所有异常的类,都是继承Throwable,Throwable中有两个子类,Error和Exception
    • Error 是当程序出现错误,而无法处理的情况
    • Exception 是程序出现不正常的情况但可以处理的情况
Exception详解
  • RuntimeException和CheckedException的区别
    • RuntimeException(运行期异常),不会引起编译错误,不需要强制处理。常见的有:
      • ClassCastException(类转换异常)
      • NullPointerException(空指针异常)
      • IndexOutOfBoundsException(越界异常)
      • ArithmeticException(算术异常)
    • CheckedException(编译期异常),会引起编译错误,需要强制处理, 否则程序就运行不了
      • IOException
      • SqlException
try、catch、finally、throw、throws关键字
  • try、catch、finally的作用

    • try : 检测不安全的代码块(发现异常)
    • catch: 异常处理代码
    • finally:不管出现或者不出现异常都会执行的代码
    • 其中catch和finally可以省略,但是try不能
    • 可以多个catch块
    • catch的异常,父类异常的catch块在子类异常之后
    • 可以catch任何异常
    • catch CheckedException时,try块中必须存在可能引发该异常的代码,否则编译错误
    • 如果catch或者finally块中存在异常,则需要再次处理

       try{
        程序代码
       }catch(异常类型1 异常的变量名1){
        程序代码
       }catch(异常类型2 异常的变量名2){
        程序代码
       }finally{
        程序代码
       }
      
  • finally和return

    • 不管会不会出现异常都会执行finally
    • 无论是在正常代码和异常处理代码中return,仍然会先执行finally再return
    • 不会执行finally的情况:System.exit(0);
  • throw和throws

    • throw 抛出一个异常
      • 使用 try-catch捕获异常
      • 使用throws声明异常
    • 语法
      • throw new 异常类构造方法;
      • throw new Exception();
    • throws 在方法签名上声明该方法会抛出某个异常,若该异常为CheckedException 则调用该方法时需要对此进行处理
    • 可以声明多种异常类型,用”,”分开即可
    • 示例

      • public void test throws异常1,异常2,异常3{

        }

自定义异常
  • 概念

    • 自定义异常就是自己定义的异常类,也就是Exception直接或间接的子类
    • 自定义异常类

          public  class 异常类名 extends Exception{
              public 异常类名(){
                  super();
           }
       }
      
    • 自定义异常类中往往不写其他方法,只重载需要使用的构造方法
    • 示例

          public class GameException extends Exception{
              public GameException(){
                  super();
              }
          } 
      
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值