当前位置: 首页 > article >正文

异常(Exception)

1.错误与异常

1.错误

错误是指程序遇到非常严重的不正常状态,不能简单恢复执行,一般是在运行时遇到的硬件或操作系统的错误,如内存溢出,操作系统出错,虚拟机出错等,错误对于程序是致命的。

Error类 是错误类 该类由Java虚拟机生成并抛给系统,如内存溢出错误,栈溢出错误,动态链接错误等。

2.异常

异常通常指非致命性错误,一般指在运行程序时硬件和操作系统是正常的,而程序遇到了运行错,如除法运算时除数为零 ,操作数超出数据范围

Exception类是异常类,是Java应用程序捕获和处理的对象。

2.异常处理

捕获异常处理方式是通过try-catch-finally来捕获和处理异常的。

语法格式如下

try{

//将可能出现异常的代码放这里

}catch(要捕获的异常类型 e){

//如果try中的代码抛出异常了,此处catch捕获时 异常类型与try中抛出的异常类型一致时或者是try中抛出异常的基类时,就会被捕获到

}finally{

//此处代码一定会被执行

}

注意:catch和finally可以只有一项或者两项都有但是必须有一项

异常处理程序举例:

3.抛出异常

抛出异常需要借助两个关键字throw 与throws

1.throw

throw 异常对象;

异常对象是程序是创建的指定异常类对象。

public void set (int age){

if(age>0&&age<160)

this.age=age;

else

throw new Exception("IllegalAgeData");//抛出异常

}

2.throws

用于抛出方法体中的异常

语法格式:修饰符 返回类型 方法名(参数列表)throws 异常类1,异常类2.....

{

...

}

public void set (int age)throws Exception{

if(age>0&&age<160)

this.age=age;

else

throw new Exception("年龄无效"+age);

}

4.自定义异常类

自定义用户密码异常类

以自定义登录为例:

public class Login {
    private String UserName;
    private String Password;

    public Login(String userName, String password) {
        UserName = userName;
        Password = password;
    }

    public String getUserName() {
        return UserName;
    }

    public void setUserName(String userName) {
        UserName = userName;
    }

    public String getPassword() {
        return Password;
    }

    public void setPassword(String password) {
        Password = password;
    }
    public void Logininfo(String UserName, String Password){
        if(!this.UserName.equals(UserName)){
            throw new UsernameException("用户名错误。。。。。");
        }
        if(!this.Password.equals(Password)){
           throw new PasswordException("密码错误。。。。。");
        }
        else{
            System.out.println("登录成功!。。。。。。");
        }


    }
}

public class UsernameException extends RuntimeException{
   public  UsernameException(String s) {
       super(s);
   }
   public UsernameException(){
       this("");
   }
}//自定义密码异常类
public class PasswordException extends RuntimeException{
//需要继承RuntimeException或Exception
    public  PasswordException(String s) {
        super(s);
    }
    public PasswordException(){
        this("");
    }
}//自定义用户名异常类

http://www.kler.cn/news/310337.html

相关文章:

  • 24年蓝桥杯及攻防世界赛题-MISC-2
  • LeetCode41. 缺失的第一个正数(2024秋季每日一题 20)
  • OpenHarmony(鸿蒙南向开发)——标准系统方案之扬帆移植案例
  • Qt安卓开发连接手机调试(红米K60为例)
  • 宠物定位技术升级,蓝牙定位让爱宠随时在线
  • 《机器学习by周志华》学习笔记-神经网络-02感知机与多层网络
  • SQL 多表联查
  • DAY60Bellman_ford 算法
  • MatchRFG:引领MemeCoin潮流,探索无限增长潜力
  • 养殖场中的分布式光伏发电
  • python画图|在3D图上画2D直方图(作图平面移动)
  • 828华为云征文|华为Flexus云服务器打造《我的世界》游戏服务器
  • maven pom文件中的变量定义
  • MacOS Safari浏览器按ESC就退出全屏模式的去除办法
  • 机器狗与无人机空地协调技术分析
  • 如何快速解决程序中的BUG
  • LeetCode 每日一题 求出最多标记下标
  • Kubernetes从零到精通(12-Ingress、Gateway API)
  • camtasia2024绿色免费安装包win+mac下载含2024最新激活密钥
  • 662. 二叉树最大宽度 BFS 力扣
  • 层次聚类(Hierarchical Cluster)—无监督学习方法、非概率模型、判别模型、线性模型、非参数化模型、批量学习
  • 【原创 架构设计】多级缓存的应用、常见问题与解决方式
  • 【MATLAB源码-第170期】基于matlab的BP神经网络股票价格预测GUI界面附带详细文档说明。
  • svg与css关联
  • Spring Boot-Bean注入问题
  • JAVA对象、List、Map和JSON之间的相互转换
  • 电脑端视频剪辑软件哪个好用,十多款剪辑软件分享
  • 制造业的智能化革命:工业物联网(IIoT)的优势、层级应用及挑战解析
  • ArcGIS Pro SDK (十五)共享
  • python 实现average median平均中位数算法