首页 > 编程语言 >JavaOOP06——异常

JavaOOP06——异常

时间:2024-11-13 11:14:26浏览次数:3  
标签:String JavaOOP06 枚举 static catch 异常 public

目录

一、异常处理概述

二、使用try-catch-finally块处理异常

三、使用throw与throws关键字抛出异常

四、创建自定义异常类 

五、 枚举类型

六、结合自定义异常与枚举类型


一、异常处理概述

定义与重要性

  • 异常是在程序执行期间发生的错误情况。

  • 异常处理允许程序在出现错误时仍能继续运行或优雅地退出。

异常分类

  1. 运行时异常(Runtime Exception):通常由于编程错误导致,例如数组越界访问。

  2. 检查型异常(Checked Exception):编译器要求必须处理的异常,例如文件未找到。

  3. 错误(Error):严重问题,如内存不足,通常无法恢复。

二、使用try-catch-finally块处理异常

基本语法

try {
    // 尝试执行的代码块
} catch (ExceptionType1 e) {
    // 处理ExceptionType1类型的异常
} catch (ExceptionType2 e) {
    // 处理ExceptionType2类型的异常
} finally {
    // 无论是否发生异常都会执行的代码块
}

示例代码

public class TryCatchFinallyDemo {
    public static void main(String[] args) {
        try {
            int result = divide(10, 0);
            System.out.println("结果为:" + result);
        } catch (ArithmeticException e) {
            System.out.println("发生了除零错误!");
        } finally {
            System.out.println("无论是否发生异常,我都会执行");
        }
    }

    private static int divide(int a, int b) throws ArithmeticException {
        return a / b;
    }
}

三、使用throw与throws关键字抛出异常

throw关键字:手动抛出一个异常实例。

public class ThrowExample {
    public static void main(String[] args) {
        validateAge(-1);
    }

    private static void validateAge(int age) throws IllegalArgumentException {
        if (age < 0) {
            throw new IllegalArgumentException("年龄不能为负数");
        }
        System.out.println("年龄验证通过");
    }
}

throws关键字:声明一个方法可能会抛出的异常类型。

public class ThrowsExample {
    public static void main(String[] args) {
        try {
            readFile("example.txt");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void readFile(String filename) throws IOException {
        // 打开并读取文件
    }
}

四、创建自定义异常类 

定义自定义异常:继承自Exception或其子类。

public class CustomException extends Exception {
    public CustomException(String message) {
        super(message);
    }
}

public class CustomExceptionDemo {
    public static void main(String[] args) {
        try {
            throw new CustomException("这是一个自定义异常");
        } catch (CustomException e) {
            e.printStackTrace();
        }
    }
}

五、 枚举类型

定义枚举类型:枚举是一种特殊的类,代表一组固定的常量。

public enum Color {
    RED, GREEN, BLUE;
}

使用枚举类型:枚举可以包含方法、构造函数等。

public enum ErrorCode {
    INVALID_INPUT("输入无效"),
    NULL_POINTER("空指针异常");

    private String message;

    ErrorCode(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }
}

六、结合自定义异常与枚举类型

示例代码

public class CustomEnumException extends RuntimeException {
    private ErrorCode errorCode;

    public CustomEnumException(ErrorCode errorCode) {
        super(errorCode.getMessage());
        this.errorCode = errorCode;
    }

    public ErrorCode getErrorCode() {
        return errorCode;
    }
}

public class EnumExceptionDemo {
    public static void main(String[] args) {
        try {
            throw new CustomEnumException(ErrorCode.INVALID_INPUT);
        } catch (CustomEnumException e) {
            System.out.println("捕获到异常: " + e.getErrorCode().getMessage());
        }
    }
}

标签:String,JavaOOP06,枚举,static,catch,异常,public
From: https://blog.csdn.net/XYL6AAD8C/article/details/143735176

相关文章

  • Java——异常处理
    目录定义分类编译时异常运行时异常处理机制捕获异常抛出异常参考博客定义Java标准裤内建了一些通用的异常,这些类以Throwable为顶层父类。Throwable又派生出Error类和Exception类。错误(Error)类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代......
  • Java异常处理
    在Java中,异常是指在程序运行过程中出现的错误条件。当发生异常时,程序会终止执行并抛出一个异常对象。为了有效地处理异常,Java提供了异常处理机制。Java的异常处理机制主要涉及以下几个关键字和语句:try-catch:使用try块来包裹可能抛出异常的代码,然后使用catch块来捕获并处理异......
  • 【异常管理(全局异常处理器)】|【事务管理(使用AOP)】
    本篇主要介绍项目开发中两个比较基础但是非常重要的模块,异常管理和事务管理,如何去使用进行了介绍,着重对AOP的使用进行了介绍,实现一个基于AOP的简单案例:定位耗时较长的业务方法,统计部分业务方法的执行耗时。一、全局异常处理器需求:软件开发springboot项目过程中,不可避免的......
  • 如何捕获和处理HTTP GET请求的异常
    在开发网络应用程序时,处理HTTP请求和响应是核心功能之一。特别是,GET请求是Web开发中最常见的请求类型之一。然而,网络请求可能会因为多种原因失败,比如网络问题、服务器错误、或者请求超时等。因此,有效地捕获和处理这些异常对于构建健壮的应用程序至关重要。本文将介绍如何......
  • 安全通道异常识别系统
    安全通道异常识别系统通过安装在消防通道附近的监控摄像头,安全通道异常识别系统对安全通道进行24小时不间断的监控。当系统检测到防火门被异常开启或安全通道被堵塞时,会立即启动警告机制,通过声音、灯光等方式提醒相关人员进行处理。同时,系统还会将异常信息实时传输到监控中心,以便......
  • java浅拷贝BeanUtils.copyProperties引发的RPC异常
    作者:京东物流吴义背景近期参与了一个攻坚项目,前期因为其他流程原因,测试时间已经耽搁了好几天了,本以为已经解决了卡点,后续流程应该顺顺利利的,没想到人在地铁上,bug从咚咚来~没有任何修改的服务接口,抛出异常:java.lang.ClassCastException:java.util.HashMapcannotbecastto......
  • 如何处理微信小程序大量未捕获的异常
    1)如何处理微信小程序大量未捕获的异常2)如何关闭代码创建的纹理的读写,或者创建不带读写的图片3)回收带有贴图和Collider的Mesh,如何正确用对象池维护4)Cloth组件使用在一个篮筐上,运行后篮网扭曲,是什么原因这是第408篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社......
  • golang异常处理trycatch,确保系统不崩溃
    packagemainimport(  "fmt"  "os"  "os/signal"  "syscall")functest0(){  deferfunc(){    ifr:=recover();r!=nil{//捕获panic      fmt.Printf("CaughtintryCatch:%v\n&q......
  • Python捕获与处理异常
        在Python中,异常处理是一种重要的机制,用于处理程序运行时可能出现的错误情况。对程序的异常捕获与处理,可增强程序稳定性、可读性与可维护性,实现优雅的错误恢复。一、异常的概念    异常是程序在运行过程中发生的错误或意外情况。当出现异常时,程序的正常执行......
  • windows C#-异常处理
    C#程序员使用try块来对可能受异常影响的代码进行分区。关联的catch块用于处理生成的任何异常。finally块包含无论try块中是否引发异常都会运行的代码,如发布try块中分配的资源。try块需要一个或多个关联的catch块或一个finally块,或两者皆之。下面的示例演示......