06_正则与异常处理

冲压机器人系列编程:ABB IRB 6700_(6).RAPID编程语言入门 主菜单:包含文件、编辑、视图、工具等常用操作。项目浏览器:显示当前项目的文件结构,包括机器人模型、程序模块等。图形界面:用于创建和编辑机器人的虚拟环境。RAPID代码编辑器:用于编写和编辑RAPID代码。仿真控制面板:用于控制仿真过程,包括启动、暂停、停止等。变量是存储数据的容器,可以通过变量名访问和修改其存储的数据。变量定义时需要指定其类型和名称。% 定义一个整数变量并赋初值% 定义一个实数变量,未赋初值函数定义时需要指定其返回类型和参数。num result;子程序类似于函数,但不返回值。 阅读详情

正则表达式

基础演示
public class Test {
    public static void main(String[] args) {
        System.out.println(check("7029622989"));  // true
    }

    public static boolean check(String userId) {
        return userId != null && userId.matches("[1-9]\\d{5,19}");  // 非0数字开头,全部是数字,长度是6~20
    }
}
爬虫小案例
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args) {
        String data = "我们都是追梦人\n" +
                "小明的电话是15697534597"+
                "12545798632是小花的电话"+
                "公司的邮箱地址123@qq.com"+
                "今天天气很好啊,666"+
                "还行吧,88啦";

        // 1. 定义表达式的规则
        String regex = "[1-9]\\d{10}";

        // 2. 把字符串封装成一个 Pattern 对象
        Pattern pattern = Pattern.compile(regex);

        // 3. 通过 Pattern 对象去获取查找内容的匹配器对象
        Matcher matcher = pattern.matcher(data);

        // 4. 通过循环,爬取信息
        while (matcher.find()){
            String res = matcher.group();
            System.out.println(res);
        }
    }
}

异常

认识异常

Error:代表系统级别错误,Error 不是给我们程序员用的,通常开发人员不必理会

Exception:异常

  • 运行时异常:RuntimeException及其子类,编译阶段不会出现错误提醒,运行时出现的异常(如:数组索引越界)
  • 编译时异常:编译阶段就会出现错误提醒的(如:日期解析异常)

处理异常的两种方法:

  • 抛出异常:throws,在方法上使用 throws 关键字,可以将方法内部出现的异常抛出去给调用者处理
  • 捕获异常:try…catch,直接捕获程序出现的异常
自定义异常

自定义"运行时异常":只有在程序运行时才会提示异常

public class Test {
    public static void main(String[] args) {
        // 需求:保存一个合法的年龄
        try {
            saveAge(999);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("over");
    }

    public static void saveAge(int age) {
        if (age > 0 && age < 150) {
            System.out.println("Successful");
        } else {
            // throw 抛这个异常对象出去
            throw new AgeIllegalRuntimeException("Age is illegal, Your age is '" + age + "'");
        }
    }
}

// 注意!一定要继承 RuntimeException 类,才能成为一个自定义的运行时异常类
class AgeIllegalRuntimeException extends RuntimeException {

    public AgeIllegalRuntimeException() {
    }

    // 重写构造器之————封装异常的原因
    public AgeIllegalRuntimeException(String message) {
        super(message);
    }
}

自定义"编译时异常":写代码的过程中就提示异常

public class Test {
    public static void main(String[] args) {
        // 需求:也是保存一个合法的年龄
        try {
            saveAge(666);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("over");
    }

    public static void saveAge(int age) throws AgeIllegalException {
        if (age > 0 && age < 150) {
            System.out.println("Successful");
        } else {
            // throw 抛这个异常对象出去
            // throws 用在方法上,抛出方法内部的异常
            throw new AgeIllegalException("Age is illegal, Your age is '" + age + "'");
        }
    }
}

// 注意!一定要继承 Exception 类,才能成为一个自定义的编译时异常类
class AgeIllegalException extends Exception {

    public AgeIllegalException() {
    }

    public AgeIllegalException(String message) {
        super(message);
    }
}
异常处理

捕获异常,记录异常并响应合适的信息给用户

import java.io.FileInputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
    public static void main(String[] args) {
        try {
            run1();
        } catch (Exception e) {
            System.out.println("错误了哦~~~");  // 显示给用户看
            e.printStackTrace();  // 记录异常,显示给管理员看
        }
    }

    public static void run1() throws Exception {
        SimpleDateFormat obj = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date data = obj.parse("2023-11-25 12:25");
        run2();
    }

    public static void run2() throws Exception {
        // 读取文件
        InputStream is = new FileInputStream("E:/img.png");
    }
}

捕获异常,尝试重新修复

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        // 尝试修复
        while (true) {
            try {
                System.out.println(getMoney());
                break;
            } catch (Exception e) {
                System.out.println("请您输入合法的数字!");
            }
        }

    }

    public static double getMoney() {
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入合适的金额:");
            double money = sc.nextDouble();
            if (money >= 0) {
                return money;
            } else {
                System.out.println("你输入的金额对方不满意!");
            }
        }
    }
}
深度学习之目标检测--Pytorch实战 只需要能看懂python代码,就能最快入门深度学习---目标检测。目标检测简单的玩玩儿还行,模型调优,调参,还需要一定的数学功底。通过代码来实现卷积,池化,非线性激活,正则化,归一化,能让人减少对大量数学公式的敬畏,手写神经网络也是考研复试中上机考试的压轴题,掌握搭建神经网络和如何训练模型是需要掌握的基础的 阅读详情

相关推荐

SAP PP工艺路线Routing保姆级配置指南:从CA01创建到替代/并行顺序实战

本文详细解析SAP PP模块中工艺路线(Routing)的配置与应用,从基础创建(CA01)到高级功能如替代顺序和并行顺序的实战操作。通过真实案例演示,帮助用户掌握SAP PP工艺路线的精细化管理,提升生产流程效率。

weixin_30898555的博客 388

C++ 正则库与HTTP请求

正则库在处理HTTP请求中的应用分析

gma999的博客 1052

FPGA赋能:从加权灰度均值到快速收敛的自动曝光实战

本文深入探讨了FPGA在工业视觉自动曝光算法中的应用,重点介绍了加权灰度均值法的优化实现与快速收敛策略。通过硬件友好的算法改造和流水线架构设计,FPGA方案能在1帧内完成曝光调整,显著提升处理速度和能效比,适用于复杂光照条件下的工业检测场景。

weixin_29306317的博客 82

深入理解Python:基本数据类型、控制流、函数、模块与包、文件操作及异常处理

总结:本文详细介绍了Python编程语言的核心概念,包括基本数据类型、控制流语句、函数、模块与包、文件操作以及异常处理。本文旨在为读者提供关于Python编程语言的核心概念的专业介绍,涵盖基本数据类型、控制流语句、函数定义与调用、模块与包的使用、文件操作以及异常处理。list(列表):用于存储有序的元素集合,元素可以是不同类型。模块:是包含Python定义和声明的文件,扩展名为.py。for循环:遍历序列中的每个元素,执行代码块。函数是组织代码的一种方式,用于封装可重用的代码块。

sdsdsdd__的博客 704

Abaqus传热分析HETVAL和USDFLD子程序联合

Hetval子程序常用于定义内部热源,该子程序可以定义材料内部的生热量(如相变、高分子结晶生热),并且能够调用state variable 状态变量,可以与USDFLD子程序联合使用。HETVAL子程序用于计算传热系数并在单元上定义,USDFLD子程序用于在每个时间布更新温度场。

qq_41900477的博客 2660

【32】C# WinForm入门到精通 ——打开文件OpenFileDialog 【属性、方法、事件、实例、源码】

本文介绍了WinForm开发中OpenFileDialog控件的关键属性及其应用。OpenFileDialog是.NET Framework提供的文件对话框控件,主要用于选择、打开文件操作。文章详细讲解了11个核心属性:AddExtension(自动补全扩展名)、AutoUpgradeEnabled(外观升级)、CheckFileExists/CheckPathExists(文件/路径存在验证)、DefaultExt(默认扩展名)、DereferenceLinks(解析快捷方式)、FileName/File

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1534

day06

目录 异常处理 报错结构 异常处理:处理异常(报错,Error) fi判断 if一般用于判断/选择的场景 单分支 双分支 多分支 两者之间区别 逻辑运算符 ...

dituolai8786的博客 149

Universal Robot——在Gazebo中模拟UR5机器人

今天的目标是在Gazebo安装我们的ur5机器人。Gazebo是一个流行的模拟工具,它不仅可以让你像在Rviz中一样可视化你的机器人,而且还内置了一个物理引擎。这样你就可以在更真实的环境中测试你的机器人应用程序。我们将查看我们需要的属性 添加对我们的机器人——我们的order的描述,以模拟它以及如何在Gazebo中生成我们的机器人。

如果想成为中心,那么就到中心去吧。 1969

day06-正则表达式-异常-集合

day06-正则表达式-异常-集合

GemstonePhos的博客 192

把 NAST 变成你的遥控器:用 ABAP 程序精确触发与处理 Output Type

摘要 SAP中的Message Control机制通过NAST表记录输出状态,支持自动触发打印、邮件等操作。关键步骤包括: 构造NAST记录:定义输出类型、介质、处理状态等参数 调用处理函数:使用RV_MESSAGE_UPDATE_SINGLE更新表,通过WFMC_MESSAGES_PROCESS执行输出 典型应用场景: 单据补发(如PO邮件重发) 外部系统集成触发输出 故障恢复处理积压消息 注意事项: 需提交事务确保更新生效 区分S/4HANA新旧输出体系 正确处理派发时间(VSZTP)和状态(VSTAT

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 254

Spring-AI 第 17 章 - 飞书机器人接入详解

✅ Stream 长连接(官方 SDK)✅ AI 对话(支持工具调用)✅ 消息接收与回复✅ 天气查询✅ 数据库查询✅ 数学计算✅ 事件去重Stream 长连接模式:使用官方 SDK 建立 WebSocket 长连接,服务器主动连接飞书,无需公网 IP消息处理流程:接收消息 → 解析内容 → AI 处理 → 回复用户AI 工具调用:接入 FunctionTools,支持天气、计算、日期、数据库查询等多种工具。

AppBlog.CN全栈架构 210

06_文件操作和异常处理

文件的基本操作(读取、写入、追加)异常处理机制和try-except语句with语句的使用和优势编写了文件备份工具。

lpfasd123的博客 299

uniapp - 最新实现APP连接使用MQTT流程及源码教程,uniapp app端接入mqtt发布订阅和接收消息队列传送消息、断开重连等各种示例代码(完美兼容安卓Android与苹果ios手机)

uniapp app端接入mqtt示例代码教程,uni-app中使用mqtt,uniapp安卓app接入mqtt,uniApp苹果ios集成MQTT教程,uniapp vue3 mqtt app端的接入流程,uniapp开发安卓和ios如何在项目里集成mqtt,Mqtt协议,uniapp开发APP,主动连接mqtt,订阅消息,实现发布,订阅和接收消息,如何在uniapp项目中使用mqtt,uniapp mqtt的使用示例,mqtt连接报错,搭建MQTT通讯做聊天项目,uniapp与设备通信 通过mqtt实现

🏆 前端领域优质创作者 6570

Code Review 异常处理规范

/ ❌ 模糊异常throw new RuntimeException("处理失败");// ✅ 业务异常(推荐继承 RuntimeException 或 BusinessException)super("订单锁定失败,订单ID=" + orderId + ",原因:" + reason, cause);// 使用throw new OrderLockException(orderId, "库存不足", e);“好的异常处理 = 让错误可见 + 让故障可追 + 让系统可控。

我是一名在测试领域扎根15年+的“老匠人” 1099

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

用python爬取陈星旭的图片(正则表达式)

中29到36位的字符是唯一且有效的文件名,如果 URL 格式不同,可能会产生问题。:确保当程序遇到错误时(例如网络连接失败、文件写入出错等),不会崩溃,而是输出错误信息,并继续处理后续的图片。或者是一个空列表,那么这段代码块将不会执行,这样可以避免后续代码在处理空数据时抛出错误。是空的(即没有找到任何图片数据),则输出一条消息,告知未找到图片数据。(即请求失败),则输出一条消息,说明图片下载失败,并显示状态码。:这是一个条件判断,检查 HTTP 请求的响应状态码是否为。:将下载的图片数据保存到本地文件中。

2301_80421078的博客 370

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

第二百零二节 Java正则表达式教程 - Java正则表达式模式

第二百零二节 Java正则表达式教程 - Java正则表达式模式

2301_78772942的博客 664

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java日期+正则

正则是最好用的工具 牢记于心一般java对日期的处理 我觉得基本操作吧 就是SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");通过这个 把形如“2018-06-19”的字符串转换成日期(java.util.Date格式)但是这个转换 是会抛异常的 比如我取的是数据库中最大的日期 但有可能日期根本不存在 是个字符串 这样的话稳稳的是要...

夜_清澄的博客 9076

Python | ValueError: invalid literal for int() with base 10: ‘example’

Python | ValueError: invalid literal for int() with base 10: ‘example’

我是 二川兄,对Web开发、GIS开发、3D模型、机器学习、面试技巧等方面都有一些涉猎~ 欢迎您加入技术交流圈!你可以在我的文章末尾找到我~ 3943

2021-06-30

25道题目同源策略cookie 和 session 的区别多线程、多进程any()和 all()方法IOError、AttributeError、ImportError、IndentationError、 IndexError、KeyError、SyntaxError、NameError 分别代表copy 和 deepcopy 区别魔法方法sort 和 sorted 对列表排序list 排序使用 lambda 函数从小到大排序列表嵌套排序嵌套字典嵌套元组嵌套列表字典排序列表推导式、字典推导式、生成器根据字符

qq_23246143的博客 433

使用正则表达式来提取出sql语句中where的值

使用正则表达式来提取出sql语句中where的值。。

qq_31532979的贺公子之数据科学与艺术博客,致力于科技向善,拥抱开源,要用技术的影响力来领导团队,而不是威权和职位! 550

【python进阶4】包和模块,第三方包,常用模块

python中模块就是一个py文件调用模块python内建模块randomtimeosos.path。

m0_73658021的博客 506

牛客刷题06

接口与实现类 A,一个类只能有一个直接父类,但是继承是有传递性的。一个类可以实现多的接口。一个接口可以继承多个类。 B,接口中没有普通变量(普通成员变量),接口中都是常量,默认修饰符:public static final C,JDK8之前,接口中的方法都是默认public abstract的,JDK8之后,接口中可以有static、default的修饰的方法,一旦被修饰,方法必须有方法体(抽象方法可是没有方法体的),接口中的方法都不能被private和protected修饰,同时外部接口、类只能被publ

weixin_43710581的博客 943

javase-day01

【代码】javase-day01。

m0_64370841的博客 733

字符串数字提取与运算:从正则匹配到生产级实践

字符串处理是编程中的基础技术概念,其核心原理是通过模式识别和类型转换实现数据提取。在数据处理和文本分析场景中,正则表达式作为关键技术工具,能够高效识别数字模式并完成安全转换。这种技术的工程价值在于解决了字符串与数值类型间的互操作问题,避免了直接运算的类型错误。实际应用涵盖日志分析、用户输入校验、金融计算等多个领域,特别是需要从混合文本中提取金额、ID等数字信息的场景。本文通过Python代码示例,详细展示了如何结合正则表达式和Decimal模块,构建健壮的字符串数字运算流程,确保高精度计算和异常处理。

weixin_30588675的博客 379

python 常见错误和异常 函数 正则表达式及多线程编程

生成随机密码#!/usr/bin/env python import stringfrom random import choice def gen_pass(num=9): all_chs = string.letters + string.digits pwd = '' for i in range(9): pwd += choice(all_chs)...

weixin_30765577的博客 188

SpringBoot>06 - @Valid参数校验

扯淡: 刚开始写代码的时候对参数的校验要么不做、要么写很多类似 if( xx == null){ … }的语句,总想参数校验可以交给前端处理(很机智),服务端对参数的校验同样重要。 参数校验: springboot需要引入spring-boot-starter-validation(使用Hibernate Validator 框架提供验证功能) 依赖进行参数校验,由于本项目中已经引入了spr...

cp026la的博客 1954
上一篇: 05_Arrays与Lambda
下一篇: 07_Collection集合1
code_stream
博客等级 码龄4年 1238粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值