在 class 方法中引发异常的语法无效
invalid syntax for raising an exception inside a class method
我试图在 class 方法中 raise
一个 AttributeError
,这个方法的想法是如果 apply_button
是 None
那么应用例外,否则单击按钮。
但是当我执行以下代码时:
import pyautogui
import os
def apply_button_detector(self):
apply_button=pyautogui.locateOnScreen(os.path.join(ROOT_DIR, r'apply_button.png'), region=(1, 300, 500, 700))
if apply_button is None:
try:
print('no apply button')
raise AttributeError()
else:
# click on Apply button
apply_button_location=pyautogui.center(apply_button)
pyautogui.click(apply_button_location)
它在 raise AttributeError()
:
标记了我的错误
invalid syntax ()
如何调整函数以 return AttributeError?
您已将 raise
放入 try
块中,但尝试需要异常处理程序。这就是 try
的用途——区分将由一个或多个 except
或 finally
处理程序处理的代码。只需删除 try
。此外,由于 raise
中断当前执行,因此没有理由为剩余代码设置 else
。将那部分排除在外更具可读性。最后,输出看起来有点奇怪,因为 raise
包含您需要的信息。我把信息性消息移到了那里。
import pyautogui
import os
def apply_button_detector(self):
apply_button=pyautogui.locateOnScreen(os.path.join(ROOT_DIR, r'apply_button.png'), region=(1, 300, 500, 700))
if apply_button is None:
raise AttributeError('no apply button')
# click on Apply button
apply_button_location=pyautogui.center(apply_button)
pyautogui.click(apply_button_location)
我试图在 class 方法中 raise
一个 AttributeError
,这个方法的想法是如果 apply_button
是 None
那么应用例外,否则单击按钮。
但是当我执行以下代码时:
import pyautogui
import os
def apply_button_detector(self):
apply_button=pyautogui.locateOnScreen(os.path.join(ROOT_DIR, r'apply_button.png'), region=(1, 300, 500, 700))
if apply_button is None:
try:
print('no apply button')
raise AttributeError()
else:
# click on Apply button
apply_button_location=pyautogui.center(apply_button)
pyautogui.click(apply_button_location)
它在 raise AttributeError()
:
invalid syntax ()
如何调整函数以 return AttributeError?
您已将 raise
放入 try
块中,但尝试需要异常处理程序。这就是 try
的用途——区分将由一个或多个 except
或 finally
处理程序处理的代码。只需删除 try
。此外,由于 raise
中断当前执行,因此没有理由为剩余代码设置 else
。将那部分排除在外更具可读性。最后,输出看起来有点奇怪,因为 raise
包含您需要的信息。我把信息性消息移到了那里。
import pyautogui
import os
def apply_button_detector(self):
apply_button=pyautogui.locateOnScreen(os.path.join(ROOT_DIR, r'apply_button.png'), region=(1, 300, 500, 700))
if apply_button is None:
raise AttributeError('no apply button')
# click on Apply button
apply_button_location=pyautogui.center(apply_button)
pyautogui.click(apply_button_location)