2017-05-04 112 views
2

我想知道如何設置一種方法來提高RuntimeError當我知道ValueError將出現在我的代碼中。例如:如何在發生錯誤時引發不同類型的錯誤?

def example(string): 
    try: 
     var1, var2, var3 = string.split(":") 
    except ValueError: 
     raise RuntimeError 

如果我輸入少於3個元素的字符用冒號分隔(即「嗨!SO」),我會希望得到一個ValueError;不過,我希望這會引發RuntimeError,並繼續執行該程序,而不會使其停止。我會如何將這個ValueError作爲RuntimeError提升,同時還會排除RuntimeError?

+1

這個*會引發一個RuntimeError(在您將該賦值縮進並將'var 3'名稱修改爲'var3'後)。真正的問題是*爲什麼要提出特定的異常?例外情況有一個purprose:通知用戶爲什麼發生了不好的事情。 –

+0

你似乎做得對!只需使用另一個嘗試,如果你真的想要「趕上」運行時錯誤! – aliqandil

+0

謝謝,我嘗試了第二次嘗試的方法,它完美地工作! –

回答

1

你可以這樣做:

vars = string.split(":") 
if not len(vars) == 3: 
    raise RuntimeError("your message") 
else: 
    var1, var2, var3 = vars 

這樣做是爲了檢查是否字符串分割列表長度等於3,如果是你養你想要的任何例外,你處理它,你以後要(通過適當的異常處理)。