3:Throwable-Java API 实战

简介: 3:Throwable-Java API 实战

1. 异常的介绍


Throwable有两个子类


1.错误 Error


  • 不常见


  • 基本上不能解决


  • 尽量避免


2.异常 Exception


  • 常见


  • 可以定位,通过修改代码解决


  • 不是编译失败问题,代码语法没有问题


2. 异常举例以及解决常见错误bug方案


  • 定位错误:编写好程序后,运行程序,在输入运行结果栏中会存在异常提示,红色中蓝色链接,就能找到自己的代码错误


  • 解决错误:先阅读异常提示,如果了解就直接修改,如果不了解那就搜索异常提示,了解问题所在,解决问题


最经典异常展示



3. RuntimeException


异常类有两个主要的子类:IOException 类和 RuntimeException


1.运行时异常


  • 运行时异常可修改也可不修改,不会对项目运行产生影响


  • 运行时异常像游戏漏洞,它不影响我们玩游戏,但是我们有一些漏洞可以捡,比如更新以后某个英雄的技能,在某个时间可以无限的放或者平A就能秒死人


2.非运行时异常


  • 非运行时异常必须修改,因为这样会使得项目直接无法运行(现在的编译器比较智能,一定会让你try catch


  • 但是非运行时异常导致你进不去游戏


编译器中,运行时异常不会要求你捕获,但是非运行时异常会强制要求你捕获,所以我们在编写自定义异常的时候不会定成运行时异常


4. trycatch作用


try catch的作用


  • 定位一个代码块的异常,运行完成这个代码块后,抛出这个代码块的异常


  • try catch可以搭配finally使用,意思是在捕获完成以后使用,也可以不搭配


  • 但使用finally就必须搭配try catch


  • try catch的捕获内容可以自定义,可以让它抛出异常,也可以不让它抛出异常,所以根据这个小漏洞,你可以去骗毕业设计,但工作中绝对不能用!


抛出异常,正常捕获,运行可以通过,但会显示异常的结果和定位异常



不抛出异常,欺骗老师,运行还是通过,但不会定位异常




5. NullPointerException空指针异常


空指针异常的情况


  • Calling the instance method of a null object. 调用空对象的实例方法


  • Accessing or modifying the field of a null object.访问或修改空对象的字段


  • Taking the length of null as if it were an array.将null的长度当作一个数组


  • Accessing or modifying the slots of null as if it were an array.访问或修改null的插槽,就好像它是一个数组一样


  • Throwing null as if it were a Throwable value.将null视为Throwable值


在有关对象判断类中会有抛出空指针异常的情况



6. throws


throw的作用就是抛出异常,有什么用呢?


  • 通过捕获异常的功能,我们可以写判断或抛出异常的方法


  • 在不通过的情况下提醒程序员,这样程序员可以快速的更改代码,以防止程序在后面出现更严重的问题



7. throws和trycatch区别,用途区别


throwtry catch的区别


  • throw是用来抛出异常的,而try catch是尝试运行并捕获


  • 两者结合可以达到十分好的效果


创建MyException类,Alt+Insert调出Generate,选择Constructor



全选Exception



由此抛出编译异常



StringTest类中测试抛出异常



也可以通过调用函数的形式抛出异常



如果未抛出异常,则会显示编译异常,未报告的异常错误,必须对其进行捕获或声明以便抛出



而如果把MyException改成RuntimeException,就不会抛出编译异常,而是出现运行异常



8. 手把手教你编写装X自定义异常


创建ErrorCode接口



编写自定义异常代码


public interface ErrorCode {
    /**
     * 获取错误码
     * @return
     */
    String getcode();
    /**
     * 获取错误信息
     * @return
     */
    String getMsg();
}


创建MyCodeEnum枚举类



编写代码实现接口中的所有方法


public enum MyCodeEnum implements ErrorCode{
    NOT_FOUND_PAGE("404","找不到网站资源"),
    NOT_FOUND_FILE("888","找不到文件"),
    NOT_O_TEN("bad", "只能求10以内的加法")
    ;
    MyCodeEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    private final String code;
    private final String msg;
    @Override
    public String getcode() {
        return code;
    }
    @Override
    public String getMsg() {
        return msg;
    }
}


创建MyException类继承RuntimeException


public class MyException extends RuntimeException{
    public MyException(ErrorCode errorCode) {
        super(errorCode.getMsg());
    }
}


String Test类中抛出异常,并可枚举选择异常形式



目录
相关文章
|
2月前
|
Java API 数据处理
Java新特性:使用Stream API重构你的数据处理
Java新特性:使用Stream API重构你的数据处理
|
26天前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
27天前
|
缓存 自然语言处理 API
阿里巴巴国际站关键字搜索 API 实战:3 步搞定多语言适配 + 限流破局,询盘量提升 40%
跨境电商API开发常陷合规、多语言、限流等坑。本文详解从国际合规(GDPR/CCPA)到参数优化、数据结构化及区域化搜索的全链路方案,附Python代码模板与缓存重试架构,助力提升调用成功率至99%+,精准询盘增长42%。
|
2月前
|
供应链 监控 安全
1688商品详情API接口实战指南:合规获取数据,驱动B2B业务增长
1688商品详情API(alibaba.product.get)是合规获取B2B商品数据的核心工具,支持全维度信息调用,助力企业实现智能选品、供应链优化与市场洞察,推动数字化转型。
|
1月前
|
安全 Java 开发者
告别NullPointerException:Java Optional实战指南
告别NullPointerException:Java Optional实战指南
227 119
|
2月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
227 100
|
2月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
258 101
|
2月前
|
并行计算 Java 大数据
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
232 101
|
1月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
2月前
|
数据采集 缓存 API
小红书笔记详情 API 实战指南:从开发对接、场景落地到收益挖掘(附避坑技巧)
本文详解小红书笔记详情API的开发对接、实战场景与收益模式,涵盖注册避坑、签名生成、数据解析全流程,并分享品牌营销、内容创作、SAAS工具等落地应用,助力开发者高效掘金“种草经济”。
小红书笔记详情 API 实战指南:从开发对接、场景落地到收益挖掘(附避坑技巧)