首页 > 其他分享 >异常相关知识点

异常相关知识点

时间:2024-07-27 20:57:40浏览次数:12  
标签:知识点 代码 public ParseException catch 相关 异常 throws

异常:

异常就是代表程序出现的问题。

 
 

异常分类:

异常分类:ErrorException

Error:代表的系统级别错误(属于严重问题),也就是说系统一旦出现问题,sun公司会把这些问题封装成Error对象给出来, 说白了,Error是给sun公司自己用的,不是给我们程序员用的,因此我们开发人员不用管它。

Exception:叫异常,它代表的才是我们程序可能出现的问题,所以,我们程序员通常会用Exception以及它的孩子来封装程序出现的问题。

 

 

Exception:

Exception:

​ 1.**运行时异常:**RuntimeException及其子类,编译阶段不会出现错误提醒,运行时出现的异常(如:数组索引越界异常)

​ 2.编译时异常:编译阶段就会出现错误提醒的(不管代码对错,都会提醒)。(如:日期解析异常)

 

 

异常的处理方式:

throws处理异常:

throws的作用:抛出异常,如果有异常会抛给调用者( 甩锅)。

main方法throws异常给JVM虚拟机,JVM默认执行:打印异常信息,停止程序。

格式:
修饰符 返回值类型 方法名(参数) throws 异常类名1, 异常类名2 { 
} 
public static void test01() throws ParseException {
    // 可能出现异常的代码
}

package com.ouyang.demo02;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class demo01 {
    public static void main(String[] args) throws ParseException {
        test();
    }
    
    public static void test() throws ParseException {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf.parse("2024-07-27");
        System.out.println("date = " + date);
    }
}

 

 

try…catch处理异常:

try…catch的作用:捕获异常,处理这个异常(程序正常执行,继续执行)。

 

格式:
try {
   可能出现异常的代码;
} catch(异常类名 变量名) {
   异常的处理代码;
} catch(异常类名 变量名) {
   异常的处理代码;
}
try {
    // 可能出现异常的代码
} catch (ParseException e) {
    // 处理异常的代码
}
package com.ouyang.demo02;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class demo01 {
    /*
        出现了日期解析异常,我们处理了这个异常!
        啦啦啦啦啦!
   */
    public static void main(String[] args)  {
        try {
            test();
        } catch (ParseException e) {
            System.out.println("出现了日期解析异常,我们处理了这个异常!");
        }

        System.out.println("啦啦啦啦啦!");

    }

    public static void test() throws ParseException {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf.parse("2024年07-27");
        System.out.println("date = " + date);
    }
}

 

finally代码块作用:

​ 有一些特定的代码无论异常是否发生,都需要执行。另外,因为异常会引发程序跳转,导致有些语句执行不到。而finally就是解决这个问题的。

​ 在finally代码块中的代码一定会被执行。

​ catch可以不写。

try {
   可能出现异常的代码;
} catch(异常类名 变量名) {
   异常的处理代码;
} finally {
   代码;
}

 
 

重写方法异常处理:

父类方法抛出异常,子类重写该方法,抛出异常要比父类少或者相同。

 
 

 

自定义异常:

自定义异常的步骤:

自定义异常的步骤

​ ①定义类继承Exception/ RuntimeException

​ ②编写构造器

​ ③在需要的地方创建异常

package com.ouyang.demo02;

//1.定义类维承Exception/RuntimeException
public class U18Exception extends RuntimeException{
    //2.编写两个构造器调用父类的构造器

    public U18Exception() {
    }

    public U18Exception(String message) {
        super(message);
    }
}

package com.ouyang.demo02;

import java.util.Scanner;

public class demo02 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String name = sc.next();
        int age = sc.nextInt();

        try {
            register(name,age);
        } catch (U18Exception e) {
            System.out.println("您的年龄未满18岁,不能注册!");
        }

    }

    public static void register(String name,int age) throws U18Exception {
        if(age<18){
            //如果年龄小于18不能注册
            // 制造异常/创建异常
            throw new U18Exception();
        }else {
            System.out.println("注册成功!");
        }
    }
}

标签:知识点,代码,public,ParseException,catch,相关,异常,throws
From: https://blog.csdn.net/m0_57463864/article/details/140741104

相关文章

  • Spring-MVC框架升级之单例模式及统一异常处理
    在SpringMVC框架的升级过程中,单例模式和统一异常处理是两个非常重要的方面。下面我将详细介绍这两个方面,并提供相应的示例代码和总结。1.单例模式(SingletonPattern)在Spring框架中,单例模式是默认的bean作用域。这意味着Spring容器中每个bean只有一个实例,这样可以......
  • Coggle数据科学 | Kaggle 知识点:时序模型 Prophet
    本文来源公众号“Coggle数据科学”,仅用于学术分享,侵权删,干货满满。原文链接:Kaggle知识点:时序模型ProphetProphet 算法在时间序列中Prophet是Facebook开源的时间序列预测算法,可以有效处理节假日信息,并按周、月、年对时间序列数据的变化趋势进行拟合。https://facebook.g......
  • Linux: 更新系统相关依赖命令yum update执行失败: One of the configured repositorie
    环境:CentOS7(ISO映像文件=CentOS-7-x86_64-DVD-2009.iso)解决思路:系统repo镜像源连接问题导致执行失败,切换repo为国内源即可#切换仓库镜像源curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-7.repo#或者wget-O/etc/yum.rep......
  • Python数据预处理+正态性检验+异常值处理+Q-Q图-K-S检验+相关性分析(2024MathorCup A题
    #数据预处理#正态性检验、Q-Q图、箱线图、直方图、相关性分析#Q-Q图importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromscipy.statsimportnormfromscipy.statsimportprobplota=pd.read_excel('附件1:小区基本信息.xlsx',engine='openpyxl'......
  • 「Vue2+Vue3」 的 62 个知识点
    1、Vue2和Vue3的区别?vue3对于typescript的支持更加的好vue3的CompositionAPI,vue2的OptionAPIvue3打包使用tree-shaking策略,体积更小vue3在模板编译的阶段会有静态节点提升,运行时性能更好vue3使用Proxy进行响应式处理,而vue2使用了definePropert......
  • 【STC 相关】【转载】51单片机学习教程(简单入门)
    转载自:知乎https://zhuanlan.zhihu.com/p/628407258作者:rakey(作者主页https://www.zhihu.com/people/rakey-49) 学习51单片机之前你一定要具备的基础知识。1、C语言基础。2、数字电路基础。3、模拟电路基础。如果你已经具备这些知识那么我们就可以来学习单片机。学习......
  • Java知识点----万类之祖(Object)以及 抽象类
    1.万类之祖---Object1.1finalize()    在对象即将销毁的时候,JVM自动调用的方法    例如:publicclassObjectA(这个是自己创建的文件名)extendsObject(默认加上的)1.2hashCode这个知识点我们用一幅图来帮助大家更好的理解:2.抽象类抽象类作为父类的作......
  • Python数据分析案例55——基于LSTM结构自编码器的多变量时间序列异常值监测
    案例背景时间序列的异常值检测是方兴未艾的话题。比如很多单变量的,一条风速,一条用电量这种做时间序列异常值检测,想查看一下哪个时间点的用电量异常。多变量时间序列由不同变量随时间变化的序列组成,这些时间序列在实际应用中通常来自不同的传感器或数据源。多变量时间序列异......
  • c# 特性 常见的特性相关问题
    基础问题什么是C#特性(Attributes)?答:C#特性是用于向程序元素(如类型、方法、属性等)添加元数据的声明性方式。特性可以在运行时通过反射访问,并用于控制程序行为或提供额外信息。如何创建自定义特性?答:自定义特性需要继承自System.Attribute类。示例如下:[AttributeUsage(Attr......
  • 【音频相关】I2S接口规范时序以及其同DSP的连接
    I2S接口概述I²S或I2S(Inter-ICSound或IntegratedInterchipSound)是由飞利浦公司(现NXP)在1986年制定的一种用于音频IC或者设备之间传输数字PCM信息的一种接口标准。I2S常被使用在各种音源到音频DAC中。由于I2S将信号以及时钟分开传送,它的jitter失真十分地小。I2S和I2C名字非常的......