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

java的 异常处理

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

java的 异常处理

由于这个异常处理比较难,我特意抽出来发一章

try--catch:

抓取到try里面的错误以后,自动跳过try里报错语句后面的句子,去匹配catch的类型去执行

( 1)如果没有异常,执行try后则执行try/catch后面的语句

(2)可以有0个或多个catch语句,有0个或1个finally语句,但如果有try必须有catch或finally

(3)一段代码可能会引发多种类型的异常,当引发异常时,会按顺序来查看每个catchi语司,执行第—一个与异常类型见配的catch语白,其后的catch语句将被忽略,转去执行trylcatch后面的语句。

(4)大部分异常都是Exception类的子类,在catch中子类异常必须写在父类异常前面

(5)无论是否有异常都要执行finally,即使有break, returni语句

(6)如果有异常,没有catch匹配的异常类型,则继续产生异常,中断程序执行。

2,自定义异常: ①自定义Exception中的异常

 

public class IamStudent{//吃创建类定义异常
    private Integer id;//学生学号长度为10
    public void setId(Integer pId) throws IllegalArgumentException{//throws异常声明,告诉系统这里会抛出异常
        //是否长度为10
        if(pId.toString().length()==10)
        {
            id=pId;
}else{
            throw new IllegalArgumentException("长度不为10!");//抛出异常
}
}
}

import java.util.Scanner;
public class TestIamStudent{
    public void main(String args[]){
        IamStudent student=new IamStudent();
        try{
            String s=new Scanner(System.in).nextline;
            student.setId(Integer.parseInt(s));//判断长度,可能发生异常
            System.out.println("程序正常进行")
        }catch(IllegalArgumentException e){
            Shystem,out,println(e,getMessage());
        }
    }
        
}

 

②自定义用户所需异常
public class Bank{
    private money;
    public void income(int in,int out)throws BankException{
        if(in<=0|[out>=O]|in+out<0) {
            throw new BankException(in,out);
}
        int sumlncome=in+out;
        system.out.printf("本次计算出的纯收入是:%d元In",sumIncome);money=money+sumlncome;
  
    }
    public int getMoney() {
        return money;
    }
}
class BankException extend Exception{
    String Message;
    BankException(int m,int n){
        Message="入账资金"+m+"是负数或支出"+n+"是正数,不符合要求";
    }
    public String warnMess(){
        return message;
    }
}
class TestBank{
    public static void mian(String args[]){
        Bank bank=new Bank();
        try{ bank.income(200,-100);
            bank.income(400,-100);
            System.out.printf("银行目前有%d元In",bank.getMoney());
            bank.income(200,100);//发生异常
            bank.income(9999,-100);//发生异常时不会执行到
           }catch(BankException e){//异常变量
            System.out.printIn("计算收益的过程出现如下问题:");
            System.out.println(e.WarnMess());
        }
        System.out.printf("银行目前有%d元In",bank.getMoney());}
    }
}

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

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

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