Python '的目的是什么;其他';试后阻塞,除了?
在学习python时,我已经阅读了关于我的问题,但我不明白为什么这样的实现是由python完成的 案例1:引发异常&Python '的目的是什么;其他';试后阻塞,除了?,python,python-3.x,Python,Python 3.x,在学习python时,我已经阅读了关于我的问题,但我不明白为什么这样的实现是由python完成的 案例1:引发异常&sd设置为45 try: raise ValueError() sd = 45 except(OSError): sd = 50 else: sd = 23 案例2:异常由处理,但除外&sd设置为50 try: raise ValueError() sd = 45 except(ValueError): sd = 50
sd
设置为45
try:
raise ValueError()
sd = 45
except(OSError):
sd = 50
else:
sd = 23
案例2:异常由处理,但除外&sd设置为50
try:
raise ValueError()
sd = 45
except(ValueError):
sd = 50
else:
sd = 23
案例3:未发生错误,然后将执行else&sd
设置为23
try:
sd = 45
except(ValueError):
sd = 50
else:
sd = 23
我们总是希望我们的代码必须工作&如果抛出错误,它应该被处理。但是为什么else
在这里扮演角色呢?如果try块中的代码没有错误,那么运行这个
如果我误解、遗漏或指示错误,请提出建议。我建议退房-关于这一点有一整节:
try…except语句有一个可选的else子句,当该子句出现时,必须在所有except子句之后。如果try子句没有引发异常,那么它对于必须执行的代码非常有用
@Edit要详细说明这一点,else
的要点是,当您做了一些您认为可能出错的事情(例如,打开一个可能不存在的文件)时,您可以将使用该文件的代码放在else
语句中,而不是放在try
中,允许您避免捕获不是由您的try
语句引发的异常(即,如果在使用文件时出现与打开文件完全无关的异常会怎么样?try
几乎与if语句类似,因此使用else
是正常的,您将
之外的
置于errors@timmy如果在try块的前一个代码中引发异常,如何停止定义sd
。根据语言的其他引用,请尝试块句柄异常(如果发生异常)&必须停止进一步的代码执行。您可以使用最终:sd=50
,您通常希望为每个错误分配一个值或传递
谢谢您清除了我遗漏的内容!若在try块的前一段代码中引发异常,如何停止定义sd。根据语言的其他引用,请尝试块句柄异常(如果发生异常)&必须停止进一步的代码执行很高兴这有帮助-如果可以,请“✔ 接受这个答案”。为了回答您接下来的问题,我建议您稍微换一种方式思考这个问题:与其尝试“停止定义sd”,不如尝试取消它(检查del
关键字)。如果您询问如何退出该程序,您需要的是sys.exit()
。