第五章 java 异常 处理

 
  1. package org.lgc.ex;
  2. import java.util.Scanner;
  3. public class Demo6 {
  4.     
  5.     //方法得到一个年龄并返回(年龄必须是18在30之间)
  6.     public int getAge() throws MyAgeException{
  7.         int age = 18;
  8.         Scanner in = new Scanner(System.in);
  9.         age = in.nextInt();
  10.         if(age >38 || age < 18){
  11.             //引发自定义异常
  12.             throw new MyAgeException(age);
  13.         }
  14.         return age;
  15.     }
  16.     
  17.     //异常处理方法
  18.     public static void main(String[] args) throws MyAgeException {
  19.         Demo6 obj = new Demo6();
  20.         try {
  21.             int age = obj.getAge();
  22.         } catch (MyAgeException e) {                                            System.err.println(e.getMessage());
  23.             System.err.println(e);
  24.             e.printStackTrace();
  25.         }
  26.         
  27.         //在抛
  28.         //int age = obj.getAge();
  29.         System.out.println("会执行吗?");
  30.     }
  31. }
  1. package org.lgc.ex;
  2. public class MyAgeException extends Exception {
  3.     int age;
  4.     public MyAgeException(int age){
  5.         this.age = age;
  6.     }
  7.     public String toString(){
  8.         return "年龄不合要求"+age;
  9.     }
  10. }

第五章 异常(Exception)

在程序中出现的错误:1.语法错误()  2.逻辑错误()    3.运行时错误()(异常)

一.             异常

a)        运行时发生了错误称之为异常(Exception)

b)        知道哪里可能会发生异常,我们应该对他进行相应的处理。(异常处理)

c)         异常发生后,程序会直接终止,将控制权交给OS

d)        异常发生后,之前的一些资源不会自动释放。

二.             Throwable

a)        Error(错误):为内部错误,因此在正常情况下不期望用户的程序捕获它们

b)        Exception(异常):程序中出现的异常,都应该去处理

三.             异常关键字

a)        try:监控可以引发异常的代码。

b)        catch:捕获并处理异常。

c)         finally:不管有没有异常都要做的事情。(释放资源)

d)        throw:自己手动的引发一个异常。

使用:写在方法的里面

void 方法名(){

       throw new 异常类型( );     //抛出的非运行时异常必须要马上进行trycatchthrows抛异常

}

e)         throws:由方法抛出异常,交给调用方法的地方去处理异常。

使用:写在方法的声明,写在( ){ } 之间的

void 方法名( ) throws 异常类型{

      

}

四.             基本异常语法

try{

       //可能引发异常的代码

}catch(异常类型 引用){       //当程序发生异常后,会自动的生成一个异常的对象,此时这个对象就存储在“引用”中

       //对异常的处理

}finally{

       //释放资源(不管有无异常都会做的)

}

try,catchfinally都不能单独使用。且try必须出现,

组合方式有:trycatchtryfinallytrycatchfinally

五.             多重异常

try{

      

}catch(异常类型1 引用){

      

}catch(异常类型2 引用){

      

}catch(异常类型3 引用){

      

}…….

注意:catch中的异常类型父类必须放在后面。

六.             嵌套异常

try{

       try{

             

       }

       catch(异常类型 1引用){

             

}

}catch(异常类型2 引用){

      

}

注意:内层的异常如果没有被捕获,那么会交给外层的catch去捕获

七.             自定义异常

注意:自定义异常必须继承Exception或它的子类。

通常会重写toString方法,方便输出。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值