Python 板


LINE

其实这不是单纯python的问题,但python是我惯用的程式语言所以发在这里。 请问各位先进关於例外处理的"方法",有没有什麽书、教学或是基本原则可 以推荐? 我目前看过的书对於例外处理都着重於语法上的说明,导致真的要用的时候 try要框多大、那些东西是该except的我没什麽概念,另外很多人都说 exception可以分离错误处理跟商务逻辑,但我看书上的范例却没什麽感觉, 好像只是另一种形式的if错误测试。到最後code里好像真的也没用到什麽 try/except,问题都等到真正程式在执行的时候才会发现一个改一个。 另外因为except後程式会中断,导致我也不太敢用python做一些需要长时间 运行、稳定性高的程式。这都是源於我对於例外处理的认识不足导致,我想 要克服这个状况。 谢谢。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.169.89.184 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1599578920.A.140.html
1F:推 remia81: try except else finally组合起来用可以不中断 09/09 01:15
2F:→ keepingJBJ: 我的理解上if...else是程式处理对象或物件的逻辑,try 09/09 03:28
3F:→ Pieteacher: while 搭配 try except 跟 break continues 09/09 07:57
4F:→ TuCH: 程式出错了不中断是要继续错下去吗 09/09 08:16
5F:→ icetofux: 如果像是server这类的程式,当某次请求发生错误,比起直 09/09 09:34
6F:→ icetofux: 接中断,会不会忽略这个请求的後续动作,但继续服务其他 09/09 09:34
7F:→ icetofux: 的连线是比较好的选择@_@ 09/09 09:34
8F:推 TuCH: 如果目的是要不中断 那就要最外层包一个try 去处理例外 09/09 09:58
9F:推 ddavid: Server不中断也有其极限,最外圈硬包try其实不是好的作法 09/09 11:26
10F:→ ddavid: ,或者说也不是不行,但内部还是要对小部分把预想到的状况 09/09 11:28
11F:→ ddavid: 都各自处理掉,最外圈只接完全没设想到的状况 09/09 11:29
12F:→ ddavid: 当然在没设想到的状况发生时硬要Server继续跑下去也可能风 09/09 11:30
13F:→ ddavid: 险很大,需要评估取舍 09/09 11:31
14F:→ ddavid: 比如说硬碟满了,Server硬跑的结果可能就是後续使用者的操 09/09 11:32
15F:→ ddavid: 作全部无法纪录,这样硬跑结果最後还是全回溯是否有比较好 09/09 11:33
16F:→ alvinlin: 程式写多了就有感觉了。还有你写反了,有了except程式才 09/09 19:10
17F:→ alvinlin: 不会中断。 09/09 19:11
18F:→ alvinlin: 程式是先中断了,except是去接中断後去处理。 09/09 19:12
19F:→ alvinlin: 很简单的例子就是除0的中断。 09/09 19:13
20F:→ alvinlin: 通常能用if就不会用try。所以try是在if没办法解决问题的 09/10 11:41
21F:→ alvinlin: 情况用的 09/10 11:41
22F:→ alvinlin: 或是你觉得有写不完的if只好try了 09/10 11:43
23F:→ alvinlin: 要程式不中断,就在except里写个pass,你的程式就永远不 09/10 11:47
24F:→ alvinlin: 会中断了。只是结果也不对而已 09/10 11:47
25F:→ alvinlin: 还有就是你想要刻意exception的,让不同的exception 有 09/10 11:55
26F:→ alvinlin: 对应的处理方式 09/10 11:55
27F:推 ddavid: 楼上说的是例外处理的一般论,但我一直觉得Python根本上的 09/10 16:43
28F:→ ddavid: 设计有不少成分在几近强迫使用者采取例外控制流程而非if 09/10 16:44
29F:→ ddavid: 不少套件根本性地不提供return value而只给exception来处 09/10 16:45
30F:→ ddavid: 理即便用if也很直觉合理的事情 09/10 16:46
31F:→ ddavid: 这时候就很容易发生到底是要依循能if就if的概念,接了他的 09/10 16:47
32F:→ ddavid: exception後改用return往自己code的更上层传,还是保持一 09/10 16:47
33F:→ ddavid: 致性地就接个手做点必要处理後raise继续往上层 09/10 16:48
34F:→ ddavid: 这样的考虑空间 09/10 16:49
35F:→ alvinlin: 可能有吧,但又何妨。反正左手右手打到蚊子就是好手,两 09/11 01:47
36F:→ alvinlin: 手一起也行。我自己是能用if尽量不用exception,但对电 09/11 01:47
37F:→ alvinlin: 脑来说其实不是0就是1没差别。对套件来说,可能exceptio 09/11 01:47
38F:→ alvinlin: n比较好外包吧。 09/11 01:47
39F:→ alvinlin: 总之,能达到目的其实都好。 09/11 01:51







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP