Я также видел этот код с этого сайта, и я хотел попробовать его, прежде чем я собираюсь внедрить его в свой проект. Но похоже, что мне трудно понять baseException, так как я не так хорош в python. Вот код:
from threading import Timer
import time
import sys
class Watchdog:
def __init__(self, timeout, userHandler=None): # timeout in seconds
self.timeout = timeout
self.handler = userHandler if userHandler is not None else self.defaultHandler
self.timer = Timer(self.timeout, self.handler)
self.timer.start()
def reset(self):
self.timer.cancel()
self.timer = Timer(self.timeout, self.handler)
self.timer.start()
def stop(self):
self.timer.cancel()
def defaultHandler(self):
raise self
watchdog = Watchdog(5)
count = 0
while(count < 4):
try:
count = count + 1
print(count)
time.sleep(1)
except Watchdog:
print("I'm a fancy error message")
watchdog.stop()
Тогда у меня появляется это сообщение об ошибке:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 1180, in run
self.function(*self.args, **self.kwargs)
File "/home/pi/wdt.py", line 24, in defaultHandler
raise self
TypeError: exceptions must derive from BaseException
Я понятия не имею, как я собираюсь это исправить. Я много искал в Интернете, но не нашел решения. Пожалуйста, помогите мне в этом. Спасибо.
TimeoutError
? - person Gloweye   schedule 19.11.2019