簡體   English   中英

我可以從pdb引發異常嗎? (用於調試)

[英]Can I raise an exception from pdb? (for debugging)

比方說我有:

def fn1():
    # do some work
    # in some cases raise exception

def fn2():
    # do some work
    try:
        fn1()
    except:
        # do some work

我想通過從pdb中引發異常來測試負路徑。 我試過fn1

(Pdb) raise cliexceptions.NoConnectionError("Could not connect")
*** NoConnectionError: 'Could not connect to SSR'

它打印msg但不退出fn1 有沒有辦法做到這一點?

您可以通過跳轉到except子句中的相應行來手動(部分)模擬異常的影響,如果您還捕獲異常對象(在您的情況下沒有),則顯式創建它。

# a.py
line1@ def fn2():
line2@    # do some work
line3@    try:
line4@        fn1()
line5@    except:
line6@        print 'exception'

(Pdb) b 4
(Pdb) c
> a.py(4)fn2()
-> fn1()
(Pdb) j 6
> a.py(6)fn2()
-> print 'exception'
(Pdb) e = ValueError(5)
(Pdb) <<the rest of your debugging here>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM