如果有功能,我要从网站上请求一些数据,但是当我遇到错误时,我想打印错误并重新启动代码。但是我不知道确切的代码,可以请人帮我吗?这是一个代码示例:
import time
input1 = input("Blabla: ")
def repeat():
try:
if input1 == "123":
raise "Error: 123"
except Exception as e:
print(e)
time.sleep(5) # Wait 5 seconds
repeat() # Rerun code
repeat()
Run Code Online (Sandbox Code Playgroud)
运行此代码时,出现错误“例外必须从BaseException派生”。有人能帮我吗?
您不能只引发随机字符串作为例外。如果要在不定义相关类型的情况下引发一般异常,则只需引发一下Exception,替换为:
raise "Error: 123"
Run Code Online (Sandbox Code Playgroud)
与:
raise Exception("Error: 123") # The "Error: " should probably be removed
Run Code Online (Sandbox Code Playgroud)
或者,如果您可以使用更具体的错误,请这样做。如果123由于值错误ValueError而无效,请使用代替Exception。如果有更具体的原因,请创建一个子类,以使其他人更容易捕获,例如(在模块的顶层):
class SpecialValueError(ValueError):
pass
Run Code Online (Sandbox Code Playgroud)
因此,您可以执行以下操作:
raise SpecialValueError("Error: 123")
Run Code Online (Sandbox Code Playgroud)
人们可以抓住它具体地讲,或者通过简单的except ValueError:,except Exception:等等。
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |