栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java异常类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java异常类

throw是Java的关键字,该关键字的作用就是抛出异常;

throw和throws是两个不同的关键字;

throw用来抛出异常;(throw一般在方法里)

throws用来声明抛出异常,如果一个方法不想对自己可能产生的异常进行捕获和处理,则在方法声明时,使用throws子句抛出该异常。;(throws一般在头部)

异常类演示 
public class Test{
   public static void main(String[] args) {
          int n=0,m=0,t=1000;
          try {
              m = Integer.parseInt("8888");    //将输入的文字转为数字的方法
              n = Integer.parseInt("ab89");  //发生异常,转向catch
              t = 7777;  //t没有机会被赋值
          }
          catch(NumberFormatException e){              //NumberFormatException表示数字格式化异常
              System.out.println("发生异常:"+e.getMessage());        //getMessage() 将异常的详细信息输出出来
          }
       System.out.println("n="+n+",m="+m+",t="+t);       //终止了语句的执行,赋值原始数值
          try{
              System.out.println("故意抛出I/O异常");
              throw new java.io.IOException("我是故意的");    //故意抛出异常
              //System.out.println("这个输出语句肯定没有机会执行,必须注释,否则编译出错");
          }
          catch (java.io.IOException e){
              System.out.println("发生异常:"+e.getMessage());
          }
     }
}

Tip: ArithmeticException是出现异常的运算条件时,抛出此异常。.例如,一个整数“ 除以零 ”时,抛出此类的一个实例。

自定义异常类

可以扩展Exception类定义自己的异常类,然后规定哪些方法产生这样的异常(即通过throw)。 Exception类有下面几个常用的构造方法:

Exception()

构造详细消息为 null 的新异常。

Exception(String message)

构造带指定详细消息的新异常。

BankExpection.java

public class BankExpection extends Exception {
    String message;

    public BankExpection(int m, int n) {
        message = "入账资金" + m + "是负数或支出" + n + "是正数,不符合系统要求.";
    }

    public String warnMess() {
        return message;
    }
}
Bank.java

public class Bank {
    private int money;

    public void income(int in, int out) throws BankExpection {
        if (in <= 0 || out >= 0 || in + out <= 0) {
            throw new BankExpection(in, out);   //方法抛出异常,导致方法结束
        }
        int netIncome = in + out;
        System.out.printf("本次计算出的纯收入是:%dn", netIncome);
        money = money + netIncome;
    }

    public int getMoney() {
        return money;
    }
}
public class Test{
   public static void main(String[] args) {
          Bank bank= new Bank();
          try{
              bank.income(200,-100);
              bank.income(300,-100);
              bank.income(400,-100);
              System.out.printf("银行目前有%d元n",bank.getMoney());
              bank.income(200,100);
              bank.income(99999,-100);
          }
          catch (BankExpection e){
              System.out.println("计算收益的过程出现如下问题:");
              System.out.println(e.warnMess());
          }
       System.out.printf("银行目前有%d元n",bank.getMoney());
     }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862801.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号