错误和异常处理

如何进行错误处理和异常处理? 在开始详细讨论错误处理和异常处理之前,让我们先了解一下错误和异常的概念。错误:错误通常是指在程序执行过程中出现的问题,导致程序无法按预期方式继续运行。错误可以分为编译时错误和运行时错误。编译时错误是在编译代码时发现的,通常是语法错误或类型错误。而运行时错误是在程序执行时发生的,可能是由于不合法的输入、资源不足、内存溢出等原因引起的。异常:异常是一种特殊类型的错误,它通常与程序的逻辑错误或不正常情况相关。异常通常是由于程序状态不一致或不合法操作引起的。 阅读详情

处理Python的错误或异常是构建稳定程序的重要组成部分。在数据分析应用中,很多函数只能处理特定的输入。例如,Python的float函数可以将字符串转换为浮点数字,但是对不正确的输入会产生ValueError:

float('0.1') # 结果:0.1
float('hello') # 结果:ValueError: could not convert string to float: 'hello'

假设我们想要在float函数运行失败时可以优雅地返回输入参数,我们可以通过将float函数写入一个try/except代码段来实现:

def f(s):
    try:
        return float(s)
    except ValueError:
        return s

f('0.1') # 结果:0.1
f('hello') # 结果:hello

上述代码的意思就是:当float(s)没有错误的时候,会返回float(s),但当出现ValueError的时候,就会返回s本身。

不过上述代码只能处理ValueError的情况,当出现其它报错情况时,同样会报错:

f((1, 2)) # 结果:TypeError: float() argument must be a string or a number, not 'tuple'

这是因为错误类型是TypeError,但我们只设置了ValueError时的处理方式,可使用下面两种方式:

def f(s):
    try:
        return float(s)
    except:
        return s

f((1, 2)) # 结果:(1, 2)

或者

def f(s):
    try:
        return float(s)
    except (ValueError, TypeError): # 括号必不可少
        return s

f((1, 2)) # 结果:(1, 2)

某些情况下,我们可能想要处理一个异常,但是希望一部分代码无论try代码块是否报错都要执行。为了实现这个目的,使用finally关键字,一般用于读写文件:

try:
   f = open("/tmp/output", "w")
   f.write("hello")
finally:
   print("closing file")
   f.close()

不论try中写文件的过程中是否有异常,finally中关闭文件的操作一定会执行。由于finally的这个特性,finally经常被用来做一些清理工作。

FFmpeg视频缩放终极指南:从基础命令到保持宽高比的5种实战技巧 本文是FFmpeg视频缩放的终极指南,详细讲解了从基础命令到保持宽高比的5种实战技巧。针对不同平台(如抖音、B站、Instagram)的分辨率要求,提供了具体的参数模板和批量处理脚本,帮助内容创作者高效、精准地调整视频大小,避免画面变形或黑边问题,实现多平台适配。 阅读详情

相关推荐

【ROS2】MOMO的鱼香ROS2(三)ROS2入门篇——ROS2第一个节点

【ROS2】MOMO的鱼香ROS2(三)ROS2入门篇——ROS2第一个节点

qq_44703886的博客 3612

python出现float() argument must be a string or a number, not ‘map‘的错误

报错:TypeError: float() argument must be a string or a number, not 'map' 这时候,首先你肯定是用了map()这个函数,不管你用map这个函数把数据转变成了什么格式,不管是int还是float还是其它的,最后,你要把map完的数据转换成list,如果你要是需要array的话,可以再转换成array,但是要套在list外面。 简单...

记录、分享、合作、共赢 11万+

SAP面试全过程(已拿offer)

周五打电话给我说过了SAP第一轮面试,第二轮要在下周四北京,这几天终于体会到了什么叫做重压下的感觉,越复习越虚,看别人的面经都感觉卧槽这问题也巨难了吧...连去北京可以见妹子这种事情都感觉一点心情都没有。面前准备固然是要有的,但关键是平时就要有料,多想想自己做的项目。当作一个给自己的提醒吧!

cloudray8580的专栏 4万+

异常处理和错误处理技术

3. 不捕获异常,使用throws声明:在方法签名中使用throws关键字声明可能抛出的异常类型,将异常的处理责任交给调用者。- 自定义异常类型:可以根据程序的需求定义自己的异常类型,通过继承现有的异常类型来创建自定义异常类。- 异常处理应提供有意义的错误消息和适当的处理策略,以帮助开发人员和用户理解异常的原因和解决方案。- 异常信息的记录:记录异常信息,包括异常类型、异常消息、堆栈跟踪等,以便进行问题排查和修复。- 明确处理异常:在可能发生异常的地方进行异常处理,避免异常传递到程序的其他部分。

m0_75198698的博客 1074

外部ADC之AD7949——14bit、8通道、250k

在实际项目中,仅靠单片机内部的ADC采样,很有可能达不到实际采样精度,这个时候就需要外接外部ADC芯片进行采样,这些外部ADC一般都是SPI接口或者是并口。单片机通过SPI接口或并口读写芯片内部寄存器,配置参考极性、采样通道、低通滤波器带宽、基准电压源、通道序列器等。本文主要对ADI家的14bit、8通道、250k的ADC7949做一个总结,这款ADC在实际项目中使用,采样精度达到要求,读取时序有点点绕,但是是一款十分常用的ADC芯片。就是价格不太友好哈哈,一块芯片快60。

cyaya6的博客 6711

比例导引算法详解:从理论到Matlab实现(含3D轨迹可视化)

本文深入解析比例导引算法(PNG)的数学原理与Matlab实现,涵盖3D轨迹可视化技术。从基础运动学模型到导航比优化,详细讲解导弹拦截系统的核心算法,并提供Matlab代码示例,帮助读者掌握从理论到实战的全流程。

weixin_33725722的博客 548

异常和错误处理

为什么使用异常 https://isocpp.org/wiki/faq/exceptions 让代码更加简洁,清洁,更不容错过错误。但是,使用通常的错误码和判断块,有什么不好的,它们的区别是什么? 使用通常的错误码和判断块,你的错误处理代码和普通的功能函数可能搅和在一起。代码非常的混乱且很难确保处理了所有的错误。 而且有些事情只有在异常处理的帮助下才能执行,比如说构造函数中检测到的错误;此...

商少 1428

threejs中使用Reflector实现出倒影效果,并实现背景透明的效果(Reflector镜面背景透明, 倒影弱化)

在项目中遇到要实现倒影效果,threejs给我们提供了Reflector,可以轻松完成镜面效果,实现倒影。但背景不透明;并且反射出的倒影太亮了;网上没搜到解决方案, 自己修改了下源码实现了想要的效果,做个记录...

weixin_40856652的博客 5720

Python报错:int() argument must be a string, a bytes-like object or a number, not 'list'

报错信息 学习《机器学习实战》这本书时,按照书上的代码运行,产生了错误,但是在代码中没有错误提示,产生错误的代码如下: sortedClassCount = sorted(classCount.iteritems(),key = operator.itemgetter(1), reverse = True) #排序 报错如下:   错误原因 首先我们先看一下报错: ...

水亦心的博客 18万+

KRC文件——编程中的重要文件

KRC文件是指KUKA机器人控制器(KUKA Robot Controller)所使用的文件格式。KUKA是一家知名的机器人制造商,其机器人控制器通过KRC文件来管理和执行机器人程序。KRC文件包含了机器人的运动指令、逻辑控制、传感器数据等信息,以及与机器人相关的配置参数。这些文件通常使用KRL(KUKA Robot Language)编写,是一种特定的编程语言。KRC文件具有扩展名为.krc的格式,可以在KUKA机器人控制器上直接加载和执行。

TechProX的博客 2970

【Realtek sdk-3.4.14b】RTL8197FH+RTL8363NB当WAN/LAN IP冲突的时候,再次切换回正常的WAN,出现电脑无法上网也无法ping通设备网关问题分析及解决方案

如上图所示,当WAN和LAN网段冲突的时候,会导致路由设备异常,无法上网,但是修改为不冲突的网段之后,依然无法上网,同时下级PC也无法ping通路由设备,正常的如下图所示如上图所示,正常网络拓扑是可以正常的,但是在上级和路由LAN冲突的时候,再次切换为正常的网络也是异常问题复现步骤1.路由设备WAN口接到一个和本级路由是相同网段的设备2.拔掉WAN口,将WAN口接到一个和本级路由是不同网段的设备3.此时PC无法访问路由器。

wgl307293845的博客 665

python中错误和异常处理

错误和异常处理 在python中一共有2种错误:一种是语法错误,另外一种是异常。 语法错误 语法错误也叫做解析错误,是指python无法正确的识别代码的造成的。根本原因在于人的行为:手残,脑残和眼残的行为。 解决方法:按照正确的语法进行书写就没这个错误了! 异常 异常是指在语法正确的前提下,程序的报错就是异常。 它是在程序异常时单独存在的一个对象,可以对其进行获取或其他操作 异常...

秋叶夏风的博客 1224

【Java基础知识 1】Java入门级概述

优快云最强Java专栏,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。

学Java,找哪吒 16万+

bcb异常处理显示错误行号_PHP错误和异常处理

错误处理 1. 语法错误 2. 运行时的错误 3. 逻辑错误 错误报告: 错误 E_ERROR 警告 E_WARNING 注意 E_NOTICE 开发阶段:开发时输出所有的错误报告,有利于我们进行程序调试 运行阶段:不要让程序输出任何一种错误报告(不能让用户看到(懂技术, 不懂技术)) 将错误报告写入日志中 一、指定错误报告 error_reporting = E_LL 二、关闭错误输出 disp...

weixin_40005542的博客 174

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

PHP错误和异常处理

[TOC] PHP错误和异常处理 PHP的错误和异常是两个概念 PHP的错误处理: 1.语法错误 2.环境错误 3.逻辑错误 PHP的异常类型: PHP7的错误和异常 PHP 7 改变了大多数错误的报告方式。 不同于传统(PHP 5)的错误报告机制,现在大多数错误被作为Error...

chuanguan1820的博客 295

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

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

Golang错误和异常处理的正确姿势

序言 错误和异常是两个不同的概念,非常容易混淆。很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误。从表面上看,一切皆错误的思路更简单,而异常的引入仅仅增加了额外的复杂度。 但事实并非如此。众所周知,Golang遵循“少即是多”的设计哲学,追求简洁优雅,就是说如果异常价值不大,就不会将异常加入到语言特性中。 错误和异常处理是程序...

延宝小白马的博客 4909

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【Python基础】Python错误和异常处理(详细实例)

​ 在Python编程中,错误和异常处理是保证程序健壮性和稳定性的重要组成部分。Python提供了强大的异常处理机制,使开发者能够优雅地处理程序执行过程中可能出现的各种错误和异常情况。本文将深入探讨Python中的错误类型、异常处理机制以及相关的最佳实践。什么是Python?Python是由荷兰人吉多·范罗苏姆于1990年初设计的一门高级编程语言,该语言应用领域非常广泛,尤其在数据科学、人工智能、游戏开发等领域,它已经成为最受欢迎的程序设计语言之一,非常适合新手学习。

分享是一种境界,勤于分享,乐于分享! 2626

深入浅出:PHP 错误和异常处理

通过函数,你可以设置自定义的错误处理器。这允许你以更灵活的方式处理不同类型的错误。php$errno// 你可以在这里记录错误日志或采取其他措施 } set_error_handler("customErrorHandler");// 触发一个警告错误 echo $undefined_variable;?$errstr// 你可以在这里记录错误日志或采取其他措施 } set_error_handler("customErrorHandler");

软件架构师笔记 1147

PHP错误处理&异常处理

避免过度捕获异常:不要过度捕获异常,这可能导致隐藏潜在的问题或掩盖错误。只捕获你知道如何处理的异常,并将其他未处理的异常传递给更上层的代码进行处理。抛出自定义异常:通过定义自定义异常类,可以更好地组织和标识特定类型的异常。这样可以确保异常被正确捕获,并且避免特定的异常被更一般的异常类型捕获导致无法执行特定的异常处理逻辑。块来处理不同类型的异常。使用合适的异常类型:PHP 中有许多内置的异常类型,如。,而将未知或不可处理的异常传递给更上层的代码进行处理。块进行处理:根据不同的异常类型,使用多个。

代码炼金术 4865

Go错误和异常处理

基础知识 错误指的是可能出现问题的地方出现了问题,比如打开一个文件时失败,这种情况在人们的意料之中 ;而异常指的是不应该出现问题的地方出现了问题,比如引用了空指针,这种情况在人们的意料之外。可见,错误是业务过程的一部分,而异常不是 。 Golang中引入error接口类型作为错误处理的标准模式,如果函数要返回错误,则返回值类型列表中肯定包含error。error处理过程类似于C语言中的错误码,...

thinker 1489

Java异常处理错误

Java异常处理错误        发现错误的最佳时期是在编译阶段,也就是在你运行程序之前。然而,编译期间并不能找出所有的错误,余下的问题必须在运行阶段解决。这就需要错误源通过某种方式把适当的信息传给某个接收者,该接收者知道如何处理这个问题。        Java中的异常处理的目的在于通过使用少于目前数量的代码来简化大型,可靠的程序的生成,并且通过这种方式可以使你更加自信:你的应用中没有

奋起的Coder。。。 937

Python中的错误和异常处理

在 Python 中,错误通常分为两种类型:语法错误(Syntax Error)和运行时错误(Runtime Error)。也称为解析错误,是由于代码不符合 Python 语法规则而引起的错误,在程序运行之前就会被检测到,并提示错误的位置和原因。# 语法错误示例也称为异常(Exception),是在程序运行过程中由于特定条件引发的错误,导致程序无法继续执行。# 运行时错误示例x = 10 / 0在处理异常时,有时候需要将异常链传递下去,以便更好地理解异常的来源和上下文。

weixin_55100524的博客 1331

Python 错误和异常处理全解析

本文深入探讨 Python 中错误和异常相关知识,详细介绍了语法错误、异常的概念、处理方式、触发方法、异常链、用户自定义异常、清理操作以及多个异常处理和异常注释等内容,并结合丰富示例帮助读者理解,旨在提升读者对 Python 错误和异常处理的认知与实践能力。

Tekin 是深耕技术 20 年的全栈实战派专家,精通 Go/Python/Java 等多语言开发。博客专注技术原理与实战结合,深度解析 Python 高阶编程、Go 语言架构、数据库优化等硬核内容。涵盖并发编程、机器学习、云原生等前沿领域,通过真实案例拆 648

通过异常处理错误

异常基础

m0_72710328的博客 357

什么是PHP中的错误和异常处理?

这是一个可选参数,是一个整数的位掩码(bitmask),指定了要报告的错误级别。如果没有提供此参数,将仅返回当前的错误报告级别。在PHP中自定义错误处理函数,主要通过使用函数来实现。首先,需要创建一个自定义异常类,并将其继承自PHP内置的Exception类。这样可以利用Exception类提供的基本功能,并添加自己的属性和方法。// 可以添加额外的属性和方法在自定义异常类中定义一个构造函数,用于初始化异常信息(如错误消息、错误代码等)。$message和$code。

破损的天堂鸟博客 1053

7错误和异常处理

Python中的异常处理是一种机制,用于在程序运行时检测和处理错误。当Python程序发生错误时,通常会抛出一个异常对象,该对象包含有关错误的信息。我们可以使用try-except语句来捕获和处理异常,以便程序可以在出现错误时继续运行,而不是立即停止。try : # 可能会出现异常的代码块 except ExceptionType : # 处理该异常的代码块在try代码块中,我们可以放置可能会出现异常的代码,例如读取文件、网络请求、数据库查询等。

ACTIONTNT的博客 167
上一篇: lambda函数
下一篇: numpy之多维数组
米法·
博客等级 码龄8年 179粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值