除了特定于库的错误之外,您如何使用 try?

How do you use try except for library specific errors?

我正在我的程序中初始化游戏手柄,但如果游戏手柄未连接,它将 return 错误:

pygame.error: Invalid joystick device number

我目前的代码是这样的:

try:
    init_controller()
except pygame.error:
    use_keyboard = True

我如何格式化 except 子句以仅排除此 pygame 错误而不是所有 pygame 错误?

直接回答您的问题:由于异常都是同一类型,因此您的选择仅限于简单地检查异常消息,然后在异常时重新引发异常不匹配。或者因为您只用 try/except 包装该函数,可以安全地假设它是操纵杆错误而不是其他原因。呜呜呜……

您问题的真正答案:您可以使用pygame.joystick.get_count() 查看有多少个操纵杆。如果为 0,则不要调用该函数。