《Beginning Python From Novice to Professional》学习笔记十:Exception

3天干完6个月的活,Claude把模型搬上AMD 一条挺刺激的消息:Anthropic 给投资人的材料里有一张幻灯片,写着它的 Claude Mythos Preview 只花了大约​,就摸清了怎么让另一个 Claude 模型在 AMD 的 MI355X 上跑起来。同一处还写了个对照数字:过去给一块新芯片做推理适配,通常要几十名工程师、​。3 天对 6 个月,这个比值太扎眼,当天中文互联网上就冒出一堆「英伟达的护城河塌了」的说法。我把能翻到的材料都翻了一遍,越看越觉得,塌掉的那一小块是真的,可塌的位置和很多人想的不一样。 阅读详情

0.最重要的内置异常
Exception:所有异常的基类
AttributeError:属性引用或赋值异常
IOError:试图读、写不存在的文件
IndexError:使用Sequence中不存在的Index
KeyError:使用Mapping中不存在的Key
NameError:变量名未找到
SyntaxError:语法错
TypeError:在内置函数中使用错误的类型
ValueError:类型对,但值不正确
ZeroDivisionError:除零

1.自定义异常
class SomeCustomException(Exception): pass

2.捕获异常

   #适合于人机交互

3.无参数raise重新抛出异常reraises

   #适合于程序间交互

#注意在除以零且muffled不为零的情况下,程序的返回值为None

4.多Exception分支


5.在一句中同时捕获多个Exception


6.同时捕获多个,而且能甄别具体是哪个

7.捕获一切异常

但这种捕获方式比较危险,因为它会忽略程序中你未曾想到的错误,同时也不能针对错误来处理,因此尽量采用以下形式来捕获所有异常:



8.When All Is Well
不知咋翻,多用于输入时,不断提示输入直到一切就绪
   
9.finally
在出现可能的异常之后做一些清理工作

结果为:--->
Cleaning up...
Traceback (most recent call last):
  File "C:/python/div.py", line 4, in ?
    x = 1/0
ZeroDivisionError: integer division or modulo by zero

也可以加上except:

结果为: --->
integer division or modulo by zero
Cleaning up...

10.异常跟踪
如果一个异常在函数A内部被引发,但没有被处理,它将被传递给调用它的函数B,如果在B处又未处理,它将继续上溯传递,直到全局域内的函数G,如果在G中仍未被处理,整个程序将halt并显示错误信息(a stack trace):

ignore_exception()   --->
Traceback (most recent call last):
  File '<stdin>', line 1, in ?
  File '<stdin>', line 2, in ignore_exception
  File '<stdin>', line 2, in faulty
Exception: Something is wrong

handle_exception()   --->
Exception handled   #只要在任何一处被处理了,则整个程序不被因为此Exception而Halt。

11.The Zen of Exceptions - Exception哲理
比较下面两段代码:

其中第一段会查找Key “occupation”两次,一次判断,一次取值;而第二段代码则只要一次。
但在大多数情况下,用try/exception还是if/else只是个人喜好的不同(a matter of taste)。对性能的影响不大,而且编程时对性能的考虑是第二位的。

The point is that using a try/except statement is in many cases much more natural (more “Pythonic”) than if/else。应该尽量使用它。

最后引用Grace Hopper's words of wisdom, “It’s easier to ask forgiveness than permission.”

这种策略叫Leap Before You Look idiom.

从零构建边缘AI数据管道:K230+ESP8266的物联网实践指南 本文详细介绍了如何利用K230开发板和ESP8266模块构建高可靠性的边缘AI数据管道,特别针对智能农业监测场景。通过完整的系统架构设计、AI模型部署、低功耗通信优化和云端集成方案,为开发者提供了一套可落地的物联网实践指南,重点解决了边缘计算环境下的数据传输稳定性和能效管理问题。 阅读详情

相关推荐

别再被无限debugger卡住了!Chrome DevTools实战绕过技巧(含Hook与文件替换)

本文详细介绍了如何通过Chrome DevTools绕过无限debugger封锁的实战技巧,包括Hook技术与文件替换方法。针对常见的定时器轰炸、循环陷阱和动态注入等反调试手段,提供了高效的解决方案,帮助开发者快速突破调试障碍,提升爬虫和逆向工程效率。

weixin_30326515的博客 243

Python装饰器学习

在《Core Python Programming 2nd》中学习到了装饰器,这对我来说是个完全陌生的语法,第一遍愣是没看懂,很有必要记一下。 第一眼看到这个词Decorator,我联想到了DP中的Decorator模式,后来才知道完全不是这么一回事。(再次鄙视一下国内浮躁的博客,我google了一下,几乎千篇一律都是什么锁同步装饰器、超时装饰器,我对原作者表达敬仰,可是大家都是转载就不像

thy专栏 5万+

使用VS Code创建第一个Flutter工程

你可以使用任意文本编辑器结合命令行工具来开发Flutter应用。然而,我们推荐使用本文介绍的编辑器插件以获取更好的开发体验。这些插件提供了代码补全、代码高亮、widget辅助编辑等功能,以及为项目的运行和调试提供支持。推荐的开发工具有VS Code、Android Studio、IntelliJ。本文将重点介绍如何使用VS Code进行Flutter应用开发。

2501_91373349的博客 2129

Django显示图片

通常在App的根目录下建两个目录 static用来放网站自己的图片、js、css等 media用来放用户上传的图片、文件等 现在假设有d:/wwwsite/office/static/images/psb.jpg 在urls.py中的urlpatterns中添加: urlpatterns = patterns('', url(r'^static/(?P.*)', 'dja

thy专栏 2万+

#基于原生JS的交互式代码高亮编辑器实现教程

本文介绍了一个轻量级交互式代码高亮编辑器的实现方案。该编辑器采用原生JavaScript开发,支持语法高亮、行号显示、主题切换等核心功能,适合嵌入博客、文档等场景使用。 项目技术栈包括HTML5/CSS3/JavaScript,使用Prism.js实现语法高亮,prettier提供代码格式化功能。编辑器界面分三个区域:顶部工具栏(语言选择/主题切换)、中间编辑区(行号+代码)、底部状态栏(语言/字符数)。 核心功能实现包括:通过contenteditable属性创建可编辑区域,Flex布局实现行号与代码同步

qq_42386733的博客 1038

在F1C100s上跑GBA游戏:手把手教你用Buildroot配置SDL和移植gpsp模拟器

本文详细介绍了在全志F1C100s开发板上配置Buildroot、移植SDL库和gpsp模拟器的完整流程,帮助开发者实现在ARM9平台上流畅运行GBA游戏。内容涵盖环境配置、交叉编译、常见问题解决及性能优化技巧,特别针对'段错误'和'无声音'等典型问题提供实用解决方案。

weixin_42566424的博客 398

用Python高效地移动文件

对于同盘移动文件或目录,shutil.move基于复制,远不如os.rename高效。

thy专栏 2万+

详述字符集与汉字编码

字符集与字符编码是文本处理的基础概念。字符集定义字符集合(如ASCII、GB2312、Unicode),字符编码则规定字符如何存储为二进制数据。汉字编码经历了从区域化(GB2312、GBK、BIG5)到全球化(Unicode)的演进,Unicode通过UTF-8、UTF-16等编码方案实现跨语言兼容。UTF-8因兼容ASCII、节省空间且无乱码风险,成为中文互联网的主流编码。正确处理编码问题需统一标准、明确声明格式,并注意生僻字的特殊处理。

零零发不爱ai的博客 806

Python中对Tuple之间排序时如何指定第几个元素为关键字排序的问题

因为Core Python Programming上的一个作业7-3要求将一个Dictionary的key和value同时显示,并按key排序。 我做完之后就考虑如果要求按value排序呢?或者说多个Tuple之间排序时如果指定用第几个元素为关键字? google了一下找到了答案,记一下: 解决方案有二: 方法一是采用lambda语法。 Python 支

thy专栏 1万+

2025年CSP-J初赛真题及答案解析(完整版)

2025年CSP-J初赛真题及答案解析(完整版)

王老师青少年编程 1万+

大数据分析工具Power BI(二):Power BI下载安装和模块介绍

首先在Microsoft官方网站上下载PowerBI Desktop,然后进行安装。id=58494点击"Next"后会弹出下载框,进行下载即可,下载好的PowerBI名称为"PBIDesktopSetup_x64.exe",也可以在"资料"中获取安装包,双击安装包即可安装。

Lansonli(蓝深李)的博客 2321

第一次写完整的Python GUI程序

 夜里用外挂容易被查,因此想让菜熟的时间集中到白天,每次都要口算,麻烦,正好刚刚学了wxPython,一时手痒,来自己写个吧。虽说纯属自娱自乐,但也学到不少东西。现记于下。 1. 关于Python的GUI设计 一直以来都没有一个足够好的Killer IDE,这也怪不得,没有一个足够强大的后台,要想做成重量级的IDE谈何容易(要是Google拉一把就好了,可惜Google出了自己的语

thy专栏 1万+

《备考信息系统项目管理师》 - 专栏介绍和目录

本专栏会持续详细梳理软考高级信息系统项目管理师(高项)的考点、所有历年真题(包括综合知识、案例分析、论文)等,有论文专项,预测模拟题等内容。需要的可以先订阅下哦。

数据知道的博客 2万+

《Python 2.1 宝典》读书笔记

看完了《Core Python 2nd》,入门是肯定了,但离掌握还有不小的距离。抛开那些数不尽的模块不说,单是语言这一块,仍然有不少特性只是了解,仍不能熟练地运用。用Stroustrup的话说:必须用语言的本质特征来编写程序。我仍然有30%左右的地方在用C++的方式在写Python程序。所以在看《Python2.1 宝典》之际,我决定小记一下,起到熟练的作用,做一个Pythoner。 

thy专栏 9668

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

小结两种在Python中导入C语言扩展库的方法

一种是Python文档的推荐方案,采用C API扩展写法:在D:建一个add.c文件,输入//add.c//#include ;static PyObject* add(PyObject *self, PyObject *args); //一定声明为static,把他们限制在这个文件范围里。 几乎所有的参数都是PyObject类型。 在python,每个东西都是

thy专栏 7633

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

python脚本模拟浏览器

(偶尔看到,怕忘了)仿用户打开浏览器然后点击等行为然后获取结果,以下是我使用过的方法只是依赖与ie不过firefox等应该也有相应的调用方法: 思路就是调用ie的com组件然后就是对dom的操作跟用javascript操作dom类似,示范代码如下#天涯登陆地址 tianyalogin = "http://www.tianya.cn/" tianya_user = "xxxxx"

thy专栏 6201

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

wxPython做GUI:如何在Grid中响应鼠标移动事件

最近写一个小软件,GUI是用wxPython做的,有一个功能需要捕获鼠标在Grid控件上的移动事件。我先在Boa Constructor中拖出一个Grid原型来做测试,发现很容易,只要grid.Bind(wx.EVT_MOTION, self.OnGridMotion)就可以了,但是移植到软件中去之后,死活无法响应,百思不得其解。 不断的尝试之下,总算发现了当Grid还没有创建

thy专栏 5850

在Pydev中使用utf-8的心得小结

PyScripter一直用得挺不错的,直到用上了wxPython,在PyScripter中直接运行wxPython的程序是不行的,因为它们的mainloop有冲突。后来看到了Pydev,抱着试试看的心态来用用。 刚开始用Pydev时,一直还得开一个PyScripter,因为觉得Pydev中没有Interactive Console,后来发现可以打开两个console标签,然后将其中一个变成

thy专栏 5440

Python cPAMIE 模拟IE浏览器

 PAMIE 是一个很有意思的模块。它是一个实现IE自动化的模块。在此之前我使用过ClientCookie这个模块,它可以使用urllib2来通过程序访问页面,并且很适合在需要cookie支持的环境中。不过,有些web的访问过程并不仅仅是下载文件这样的事情,有时是一系统的动作。PAMIE应该是一个更直观,更简单的模拟手工输入的过程。不过,局限就是它只支持IE,在某些特殊情况下还是可以的。使

thy专栏 5292

wxPython中如何让继承使用了PyGridTableBase的grid切换数据

小记以前一个QQ农场偷菜软件 我的展示农作物的表格有点复杂, 数据类继承Grid.PyGridTableBase, 显示类继承Grid.PyGridCellRenderer 问题是当我在运行时要切换表格中的数据时,表格并不随之动态更新。这个问题困扰了我很久,曾经逼得我建了3个表格,切换数据时隐藏另外两个。可这个解决方案实在不漂亮。一次次Google加一次偶然的灵机一动,I hack i

thy专栏 4587

Windows下Python程序打包小结

这还是之前的文章,最近发现了,还是存在网上好找些。 当然现在我的观念有点不一样了,纯Windows下桌面应用,还是Winform为首选,遇到复杂动画时用WPF控件。跨平台桌面应用,可以选择MONO,还可以用Boost C++导入Python程序,这比直接打包Python方便,像GUIMiner应该就是: 记下吧,也会用得上: Windows不像Linux,没有默认安装Python环境

thy专栏 4504

在C#中调用django rest framework需要身份认证的api

最近在项目中需要将设备的数据上传到网站,决定使用webservice

thy专栏 3907

Python的walk和Decorator使用一例

由于经常要查询C++相关的资料,翻书太麻烦,MSDN太大,去网上查询又太慢。于是决定将www.cplusplus.com整个打包成CHM,以便查询用。 将网站down下来之后,发现要做成CHM还是有不少后期工作要做,比如:应该把页面右上方的Login去掉。。。正好学了Python一直没有派上大的用场,咱露它一小手吧。 第一个问题就是遍历目录的问题,网站下面有好几十个目录,以前写C+

thy专栏 3584

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

weixin_53637133的博客 178

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 425

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 241
上一篇: 修改MFC模板写的程序的EXE文件的图标
下一篇: VC6中将UNICODE字符串转化为浮点数
thy38
博客等级 码龄19年 184粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值