JAVA基础3(异常)

第七章:异常
1、定义:指在程序运行过程中发生的不正常的事件,它会中断正在运行的程序
2、异常处理机制
   程序中预先设置好对付异常的处理方法–>程序运行–>异常–>对异常进行处理–>处理完毕,程序继续执行
3、异常的处理方式
   if-else:不好,代码臃肿(一般不使用)
   try(执行可能产生异常的代码)、catch(捕获异常)、finally(最终必须要执行的,除非碰到System.exit(1)退出jvm虚拟机)、throw(手动抛出异常)、throws(声明方法可能要抛出的异常)
  (1)try-catch-finally:存在return的try-catch-finally先执行finllay再执行return退出方法
  (2)try-finally
  (3)try-catch:快捷键Ctrl+Alt+T
  (4)多重catch块:只执行第一个与异常类型匹配的catch语句;排列catch语句先子类后父类Exception
  (5)throws:如果一个方法体中抛出了异常,需要通知调用者处理异常,多个异常逗号隔开;调用者有两种处理方式1>调用者处理异常2>调用者继续声明异常
     public static void divid()throws Exception{} //当Exception与其子类共存时,执行Exception异常;声明Exception异常最后不处理会报错,声明其子类异常则不会报错;
     public static void main(String[] args) {
         try {
         divid();
        } catch (Exception e) {
         e.printStackTrace();
        }
     }
  (6)throw:1>当前方法中出现了异常,但处理异常的责任不应该是当前方法管,这时将异常抛出
        2>当程序遇到了一个满足语法要求,但不符合业务逻辑的情况,这时候主动throw一个异常出来
        public class Throw {
           public static void main(String[] args) {
              Person person=new Person();
               try {
                  person.setSex(“make”);
               } catch (Exception e) {
                 e.printStackTrace();
                }
            }
        }
        public class Person{
           private String sex;
           public void setSex(String sex)throws Exception{
              if(“男”.equals(sex)||“女”.equals(sex)){
                  this.sex=sex;
              }else {
                  throw new Exception(“性别必须是"男"或者"女”!");
              }
            }
         }
4、Throwable类:是所有异常类的父类,其下有两个子类
  (1)Error:一般是虚拟机溢出,属于系统级别错误,假如出现这种错误,应尽力使程序安全退出
  (2)Exception
    1>运行时异常:用户输入无法左右,不要求必须捕获或者声明抛出;
     其下分很多子类,例:ArithmeticException算数异常、InputMismatchException匹配异常、NullPointerException空指针引用异常、IndexOutOfBoundsException下标越界异常、ClassCastException对象强制转换异常、NumberFormatException数字格式异常、SecurityException安全异常、IllegalArgumentException传递非法参数异常
    2>check异常:必须捕获或者声明抛出
    3>方法:void printStrackTrace():输出异常的堆栈信息
        String getMassage():返回异常信息的描述字符串,是printStrackTrace()输出信息的一部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值