JavaSE - 面向对象编程05

news2024/9/24 1:12:47

01 正则表达式

【1】概念:正则表达式是由一些特定字符组成的,代表的是一个规则。

【2】可以用来做什么?

   ① 用于校验数据格式的合法性

   ② 用于在文本中爬取满足要求的内容

   ③ 用于String类的replace方法,split方法的替换和分割

【3】使用正则表达式校验数据格式的说明:要使用Stirng对象调用matches方法,方法里面是一个正则表达式的字符串,返回类型为boolean类型,表示数据格式是否合法。

【4】使用正则表达式校验数据格式的示例:

【5】在文本中爬取满足要求的内容的示例:

【6】用于String类的replace方法,split方法的替换和分割

02 异常

02_01 认识异常

【1】概念:异常就是程序在编译运行过程中可能出现的一些问题。

【2】异常是如何抛出的?答:当一个方法出现了异常,这个方法的内部就会把出现的异常信息封装成一个异常对象,然后向上层调用者抛,如果上层调用者都没有及时处理抛出的异常的话,最后会抛给JVM,但JVM并不会去处理接收的异常,而是会将程序暂停,底层其实也会使用try-catch去捕获相关异常,然后在屏幕上打印出异常对象里的异常信息。

【3】异常类的体系:

【代码层面上面对编译时异常】:

① 使用try-catch捕获异常

② 使用throw关键字把出现的异常抛给上层调用者

02_02 自定义异常

【注意1】:不过自定义的是什么类型的异常,都要在自定义异常内部重写父类的两个构造器,示例如下图:

                  右键Generater -->constructor --> 暂时选前两个,后面的之后碰到再讲。

【注意2】:在抛出自定义编译时异常时,写出来就会报错,此时我们如果就是想让该异常让上层调用者去处理,做法:在该异常出现的方法的参数列表后使用throw关键字抛出异常即可。

02_03 异常的处理

【问题讨论】:在开发中到底该如何处理异常?

【处理方式一】:在最外层调用者处捕获异常,记录异常信息并响应合适的信息给用户。举例:比如说下图中方法A调用方法B,方法B调用方法C,这些方法都有可能出现异常,我们把只要不是最上层调用者的异常都往上抛,即把方法C中的异常抛给方法B,把方法B和方法C的异常抛给方法A,然后在方法A中用try-catch对方法A,B,C中的异常统一进行捕获,并把这些异常信息记录到文件中去,方便程序员查看异常信息定位系统的问题把系统改得更健壮些,同时在最外层捕获到这些异常后我们其实可以响应合适的信息给用户进行浏览,例如相应一些"资源不存在"的语句给用户进行浏览,如果我们没有在最外层捕获异常的话,响应给用户的将是一些乱七八糟的异常信息给用户的体验非常不好。

【处理方式二】:在最外层调用者处捕获异常,将try-catch整体写在一个while循环里面,直到try中的代码执行到最后用break跳出。

【提示】:在最外层调用者捕获异常时,可以对异常一个一个捕获,或者直接用Exception进行泛型捕获(但不推荐)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2158960.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

动态时间【JavaScript】

这个代码实现了一个动态显示当前日期和时间的功能。具体来说&#xff0c;它会每秒更新一次时间并在页面上显示出来。 实现效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><…

GUI编程之MATLAB入门详解(01)

⛄前言 图形用户界面的设计是MATLAB的核心应用之一。当用户与计算机之间或用户与计算机程序之间进行交互操作时&#xff0c;舒服高效的用户接口功能则会对用户产生极大的吸引力。图形用户界面&#xff08;GUI&#xff09;则通过窗口、图标、按钮、菜单、文本等图形对象构成用户…

美业SaaS收银系统如何收银?博弈美业实操/美业门店管理系统源码

1.打开博弈美业APP 2.工作台上方的【收银台】、【扫码核销】、【密码核销】均可完成收银 3.【收银台】可直接选择商品/服务/课程&#xff0c;再选择客户后提交订单收款 4.【扫码核销】【密码核销】可直接扫描二维码、输入核销码进行收银

大模型日报|7 篇必读的大模型论文

大家好&#xff0c;今日必读的大模型论文来啦&#xff01; 1.中科大团队提出人像视频编辑方法 PortraitGen 中国科学技术大学团队提出了 PortraitGen&#xff0c;这是一种功能强大的人像视频编辑方法&#xff0c;它能通过多模态提示实现一致且富有表现力的风格化。 传统的人…

SLAM面经1(百度)

百度面经 百度共三面,如果面试效果俱佳,会增加一个hr面。前二面主要是技术面,分为在线coding+代码知识+专业知识+工程能力。第三面是主管面,偏向于管理方面,和hr面相似。 一面 1)在线coding 在线coding的考试内容为下面力扣的变种。 2)专业面 (1)VINS-FUSION与ORB…

鲲鹏计算这五年:硬生态基本盘稳住,才能放手进击软生态

文 | 智能相对论 作者 | 叶远风 数智化深入发展、新质生产力成为主旋律的当下&#xff0c;本土计算产业的发展被寄予越来越多的关注和期待。自2019年开启以来&#xff0c;鲲鹏计算产业生态已经整整走过5个年头。 因此&#xff0c;今年华为全联接大会的鲲鹏之夜&#xff0c;在…

【网络安全】依赖混淆漏洞实现RCE

未经许可&#xff0c;不得转载。 文章目录 正文 依赖混淆是一种供应链攻击漏洞&#xff0c;发生在企业的内部依赖包错误地从公共库&#xff08;如npm&#xff09;下载&#xff0c;而不是从其私有注册表下载。攻击者可以在公共注册表中上传一个与公司内部包同名的恶意包&#xf…

java基础(2)方法的使用

目录 1.前言 2.正文 2.1方法的定义 2.2方法的调用过程 2.3方法的实参与形参 2.3.1形参 2.3.2实参 2.3.3参数传递 2.4方法的重载 3.小结 1.前言 哈喽大家好啊&#xff0c;今天博主继续带领大家学习java的基本语法&#xff0c;java的基础语法部分打算用六到七篇博文完…

关于uniapp wifi调用走过的坑

1. uniapp老脚手架与uni-wif带来的兼容性问题 且几乎找不到解决方法 2. uni-wif需要插件市场安装 3.还有一种可以使用导入安卓类的方式&#xff0c;可以正常获取到已经连接ssid&#xff08;wifi名称&#xff09;&#xff0c;也可以获取到wifi列表 &#xff0c; 但ScanResul…

p18 docker镜像原理之联合文件系统,p19 docker镜像分层的理解

镜像是什么 镜像其实就是一种轻量级的&#xff0c;可执行的一种软件包&#xff0c;用来打包基于环境开发的软件&#xff0c;里面可以包括代码&#xff0c;环境&#xff0c;数据库&#xff0c;配置文件等信息 如何得到镜像&#xff1f; 可以从镜像仓库下载比方说dockerhub 比…

道路车辆功能安全 ISO 26262标准(2)—功能安全管理

写在前面 本系列文章主要讲解道路车辆功能安全ISO26262标准的相关知识&#xff0c;希望能帮助更多的同学认识和了解功能安全标准。 若有相关问题&#xff0c;欢迎评论沟通&#xff0c;共同进步。(*^▽^*) 1. 道路车辆功能安全ISO 26262标准 2. ISO 26262-2 功能安全管理 IS…

基于SpringBoot+Vue的旅游攻略平台管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

论文不会写快来看!分享4款ai改写论文软件

在当今学术研究和写作领域&#xff0c;AI论文改写工具已经成为不可或缺的助手。这些工具不仅能够帮助研究人员提高写作效率&#xff0c;还能确保论文的质量和原创性。以下是四款值得推荐的AI改写论文软件&#xff0c;其中特别推荐千笔-AIPassPaper。 千笔-AIPassPaper 传送门&…

设计模式之命令模式:从原理到实战,深入解析及源码应用

命令模式 什么是命令模式&#xff1f; 命令模式&#xff08;Command Pattern&#xff09;是一种行为设计模式&#xff0c;它将一个请求封装为一个对象&#xff0c;从而允许使用不同的请求、队列或者日志来参数化对象&#xff0c;并支持可撤销的操作。命令模式的核心思想是将命令…

STM32在Keil5中利用Jansson库处理和组装JSON数据【详细版】

在Keil5中利用Jansson库处理和组装JSON数据 下载Keil.Jansson.1.0.0.pack https://keilpack.azureedge.net/pack/Keil.Jansson.1.0.0.packhttps://keilpack.azureedge.net/pack/Keil.Jansson.1.0.0.pack 下载完成后直接安装到keil5中即可 选择Jansson库的理由&#xff1a;轻量…

医学数据分析实训 项目三 关联规则分析预备项目---购物车分析

文章目录 1 预备项目关联规则分析实践———购物车分析1 产生频繁集2 产生关联规则 1 预备项目 关联规则分析实践———购物车分析 import warnings import numpy as np import pandas as pd from mlxtend.frequent_patterns import apriori from mlxtend.frequent_patterns …

【LVIO-SLAM】SVD分解,最小二乘与EKF

【LVIO-SLAM】SVD分解与应用推导 1.1 线性最小而二乘1.2 SVD分解算法流程问题描述算法流程算法复杂度总结 1.3 非线性最小二乘1.4 EKF融合 KF/ EKF推导过程 1.1 线性最小而二乘 针对A是任意矩阵的话使用SVD分解求解&#xff0c;其中U是AA转置的特征值&#xff0c;V是AA转置A的特…

iPhone 16 还剩一个月,微软开源新技术让手机以 6 倍速度提前跑上大模型

作者 | 微软亚洲研究院 责编 | 王启隆 出品 | AI 科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09; 随着人工智能技术的飞速发展&#xff0c;将大语言模型(LLMs)部署到边缘设备上已成为当前 AI 领域的一个热门趋势。这一趋势不仅体现在微软 Windows 11 AI PC 等产品…

DFN:Data Filtering Networks

论文:https://arxiv.org/abs/2309.17425 代码:Data Filtering Networks | Papers With Code 阿里最近又开源了视觉多模态模型 Qwen2-VL,视觉编码器升级了,所以抓紧补一下DFN Qwen1-VL视觉编码器:OpenClip 的 ViT-bigG-14Qwen2-VL视觉编码器:DFN 的 ViT本文重点: 1:用…

选择排序(C语言实现)

目录 1.基本思想 2.代码实现 代码思路 代码实现 代码测试 3.复杂度分析 1&#xff09;时间复杂度 2&#xff09;空间复杂度 4.特性总结 1.基本思想 选择排序是一种简单直观的比较排序算法。该算法的基本思想是在每一轮中选出当前未排序部分的最小&#xff08;或最大&a…