首页 > 其他分享 >Day39--自定义异常及小结

Day39--自定义异常及小结

时间:2024-11-25 18:57:07浏览次数:10  
标签:自定义 Day39 -- 方法 Myexception test main 异常

Day39--自定义异常及小结

自定义异常

  • 使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。
  • 在程序中使用自定义异常类,大体可分为以下几个步骤:
    1. 创建自定义异常类。
    2. 在方法中通过throw关键字抛出异常对象。
    3. 如果在当前抛出异常的方法中处理异常,可以使用try - catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
    4. 在出现异常方法的调用者中捕获并处理异常。

示例:

package com.liu.exception.demo02;

//自定义异常类
public class Myexception extends Exception {

    //传递数字>10,异常
    private int detail;



    public Myexception(int a) {
        this.detail = a;
    }

    //toString;异常的打印信息  Alt+Insert----toString

    @Override
    public String toString() {
        return "Myexception{" +
                "detail=" + detail +
                '}';
    }
}

写完异常类之后,我们要写测试类,测试我们写的异常

​ 写可能会存在异常的方法

package com.liu.exception.demo02;

public class Test {

    //可能会存在异常的方法
    static void test(int a) throws Myexception {
        System.out.println("传递的参数为:"+a);
        if(a>10){
            throw new Myexception(a);//抛出
        }else {
            System.out.println("OK");
        }
    }

    public static void main(String[] args) {
        try {
            test(101);
        } catch (Myexception e) {
            System.out.println("Myexception--->"+e);
        }
    }
}

传递的参数为:101
Myexception--->Myexception{detail=101}

在 Java 程序中,程序的执行是从main方法开始的。

  1. 程序启动
    • 当你运行这个 Java 程序时,Java 虚拟机(JVM)会首先查找main方法作为程序的入口点。
  2. main方法中的操作
    • 在这个main方法中,它调用了test(101)方法。
    • main方法执行到test(101)这一行时,程序的控制流会转移到test方法。
  3. test方法的执行
    • test方法被调用后,它会执行其中的逻辑。在这个例子中,由于a = 101a>10条件成立,test方法会抛出一个Myexception异常。
    • 因为test方法通过throws Myexception声明了它可能抛出这个异常,所以当异常被抛出时,程序的控制流会返回到main方法中调用test方法的地方。
  4. 异常处理
    • main方法中,有一个try - catch块来捕获Myexception异常。当test方法抛出Myexception时,catch块会捕获这个异常并执行其中的逻辑,即打印"Myexception--->"和异常信息。

实际应用中的经验总结

  • 处理运行时异常时,采用逻辑去合理规避同时辅助try - catch处理
  • 在多重catch块后面,可以加一个catch (Exception)来处理可能会被遗漏的异常
  • 对于不确定的代码,也可以加上try - catch,处理潜在的异常
  • 尽量去处理异常,切忌只是简单地调用printStackTrace()去打印输出
  • 具体如何处理异常,要根据不同的业务需求和异常类型去决定
  • 尽量添加finally语句块去释放占用的资源(类似Scanner)

标签:自定义,Day39,--,方法,Myexception,test,main,异常
From: https://www.cnblogs.com/xiaokunzhong/p/18568382

相关文章

  • Rapid in silico directed evolution by a protein language model with EVOLVEpro 文
    文章背景蛋白质是生命活动的基石,其功能和序列之间的复杂关系长期以来吸引着科学家们的关注。尽管深度突变扫描等实验方法可以解析蛋白质突变的功能影响,但这些技术的应用范围局限于序列空间的一小部分。近年来,基于蛋白质语言模型(PLM)的计算方法如ESM2模型取得了一些突破。然而,这些......
  • 网络流学习笔记
    网络流(可看算法进阶)感性的define:一张DAG,有一个源点s,一个汇点t,其它每条边有一个容量c从点u到点v的流量:不能让经过的点的流量超出该点的容量增广路:还能继续流流量的路,也就是有一条路径,路径上的容量都不小于0最大流:s到t的最大流量求最大流算法的核心思路:不停地找增广路,流量加......
  • Week13 WriteUp
    easy_pop首先访问/www.zip目录,获得源码.题目要求在hello这里传入一个pop链.分析一下不难得出:先调用Start的__wakeup();将name变量连接到Info,通过echo调用Info的__toString();将其中的file['filename']变量连接到Room,通过指向其不存在的元素调用Room的__get();将a变量连接回Ro......
  • Runway 新增视频扩展画面功能;Anthropic 再获亚马逊投资 40 亿美元,聚焦 AI 芯片研发丨
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • 哔咔下载方法已揭晓!因为有时候无聊就会想看漫画
    哔咔下载漫画和安装手机软件是现代智能手机用户经常进行的操作。无论是iOS设备(如iPhone和iPad)还是Android设备(如大多数其他品牌的智能手机和平板电脑),哔咔漫画都有各自的应用商店和安装方法。以下是详细的步骤指南,帮助你顺利下载和安装手机软件。哔咔漫画下载安装:http://bk.amrba......
  • 《花100块做个摸鱼小网站! 》第十篇—响应式布局适配PC端和移动端
    ⭐️基础链接导航⭐️服务器→☁️阿里云活动地址看样例→......
  • Mysql 数据库并发事物导致ABA问题排查解决
    问题描述一个更新计费参数接口,按钮连点导致数据未更新问题。背景接口内容逻辑,在一个事物内,先保存更新计费参数,再根据计费参数,重新计算费用,并刷新计费单,结算单,支付单等单据金额信息。按理来讲,这个接口是具备幂等性的,因为即便多次更新,也只是重新计算一遍,数据结果不会改变。但......
  • 常见Linux命令
    1.常见Linux命令Linux命令快查网站https://wangchujiang.com/linux-command/目录切换cd[目录名称]:切换到该目录下的目录cd..(或cd../):切换到上一层目录cd/:切换到系统根目录cd~:切换到用户主目录cd-:切换到上一个操作所在目录目录操作ls:显示目录中的文件和子目录......
  • settings.xml详解
    settings.xml详解作用​ 用来设置Maven参数的配置文件,在Maven中提供了一个settings.xml文件来定义Maven的全局配置信息。我们通过这个文件来定义本地仓库、远程仓库和联网使用的代理信息等配置。文件位置全局配置:Maven的安装目录的conf子目录下面(${M2_HOME}/conf/settings.x......
  • vxe-modal 实现窗口最大化与最小化
    vxe-modal实现窗口最大化与最小化官网:https://vxeui.com<template><div><vxe-buttoncontent="点击弹出"@click="openEvent"></vxe-button></div></template><script>import{VxeUI}from'vxe-pc-......