日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python怎么处理异常然后继续_Python异常处理-返回行,继续

發布時間:2023/12/4 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python怎么处理异常然后继续_Python异常处理-返回行,继续 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通常,在try塊內觸發異常后,您永遠都無法將執行返回到特定的代碼段,因為該異常可能在很深的某個地方發生,并受其他線程的其他副作用影響的許多其他狀態.盡管您的程序可能不是這種情況,但是鑒于沒有通用的解決方案允許在Python中進行此操作,因此使用異常處理基本上不可能實現您想做的事情.

但是,SIGINT信號的默認處理程序是引發KeyboardInterrupt異常-如果您可以劫持該鍵盤以執行其他操作,則實際上可以實現此目的.這是一個簡單的程序:

import signal

import pdb

def signal_handler(signal, frame):

pdb.set_trace()

signal.signal(signal.SIGINT, signal_handler)

count = 0

while True:

count += 1

SIGINT處理程序現在只是一個在當前幀調用調試器的函數,每按一次Ctrl-C,就會在代碼所在幀的確切點觸發調試器.當然,您可以簡單地檢查以下值:

$python /tmp/script.py

^C--Return--

> /tmp/script.py(5)signal_handler()->None

-> pdb.set_trace()

(Pdb) u

> /tmp/script.py(10)()

-> while True:

(Pdb) pp count

13321869

(Pdb) c

^C--Return--

> /tmp/script.py(5)signal_handler()->None

-> pdb.set_trace()

(Pdb) quit

Traceback (most recent call last):

...

if self.quitting: raise BdbQuit

bdb.BdbQuit

因此,在ctrl-c完成后調試器被觸發,然后我跳到運行循環的框架(在您的情況下為您的代碼),然后繼續執行,再次殺死它并觸發了錯誤的退出(通過鍵入quit)終止程序.如果將其合并,則基本上可以隨時中斷并在任何地方檢查程序的值.

總結

以上是生活随笔為你收集整理的python怎么处理异常然后继续_Python异常处理-返回行,继续的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。