python - 如果代码出错,如何打印异常?
问题描述
如果有一个功能,我从网站请求一些数据,但是当我收到错误时,我想打印错误并重新启动我的代码。但是我不知道确切的代码,请有人帮助我吗?这是一个代码示例:
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()
当我运行此代码时,我收到错误“异常必须从 BaseException 派生”。有人能帮我吗?
解决方案
您不能只提出随机字符串作为例外。如果您想在不定义相关类型的情况下引发一般异常,只需 raise Exception
,替换:
raise "Error: 123"
和:
raise Exception("Error: 123") # The "Error: " should probably be removed
或者,如果您可以使用更具体的错误,请这样做。如果123
因为值错误而无效,请使用ValueError
代替Exception
. 如果有一些更具体的原因,请创建一个子类以使其更容易被其他人捕获,例如(在模块的顶层):
class SpecialValueError(ValueError):
pass
所以你可以这样做:
raise SpecialValueError("Error: 123")
人们可以专门捕捉它,或者通过 plain except ValueError:
,except Exception:
等。
推荐阅读
- system-verilog - systemverilog 中的参数数组
- swift - Swift UICollectionViewDelegateFlowLayout
- c++ - 使用 CMake 标志有条件地编译单个文件
- xamarin.forms - Xamarin.Auth oidc 完成后,Android 应用 PushAsync 导航不起作用
- c# - 无法在使用 IIS 的已发布应用程序中初始化链接服务器的数据源对象
- xmpp - SIP/XMPP:ejabberd 和 mod_register:注册:禁止
- ruby-on-rails - 为什么 Capybara 在完成测试之前退出用户?
- java - 如何修复 JSSC 的 java.lang.UnsatisfiedLinkError?(需要硬浮动吗?)
- javascript - 用户完成输入后调用搜索功能
- javascript - 根据其他单元格在表格中显示按钮