J'ai entendu parler du problème du redémarrage de la surveillance des threads
http://www.cnblogs.com/ae6623...
Le mode observateur introduit dans cet article, je pense qu'il place le code clé pour redémarrer le thread dans le corps du thread. dois-je faire s'il y a une exception non interceptée dans le bloc catch ? Je ne connais pas grand chose à la classe Exception. Toutes les exceptions peuvent-elles être interceptées ? Si tel est le cas, y aura-t-il des raisons de mort de thread manquées qui ne pourront pas être surveillées ?
Exception
est la classe parent de toutes les classes d'exceptions,catch(Exception)
peut intercepter toutes les exceptionsException
是所有异常类的父类,catch(Exception)
能捕获到所有的异常通常异常又分为
Exception
和RuntimeException
Exception
必须捕获, 发生异常时, 会执行catch
中的业务RuntimeException
, 发生异常时, 如果不捕获会中断当前线程, 如果捕获和Exception
一样通常线程退出(死亡)的条件
线程业务执行完毕
线程发生未捕获的
RuntimeException
你给的文章中重启线程的本质是让上一个线程
A
已经结束了(break
), 调用Observable#notifyObservers()
重新启动了一个线程A1
,也就是说如果没有调用Observable#notifyObservers()
的话, 是不会重启线程的.所以, 如果在调用
Habituellement, les exceptions sont divisées enObservable#notifyObservers()
之前发生了RuntimeException
Exception
etRuntimeException
🎜Exception
doit être interceptée Lorsqu'une exception se produit, l'activité danscatch
sera exécutée🎜RuntimeException
, lorsqu'une exception se produit, si elle n'est pas interceptée, le thread actuel sera interrompu. S'il est intercepté, c'est la même chose queException
🎜li>RuntimeException
🎜A
se terminer (break
) et d'appelerObservable#notifyObservers() code> Un thread
A1
a été redémarré, ce qui signifie que siObservable#notifyObservers()
n'est pas appelé, le thread ne sera pas redémarré.🎜 🎜Donc, si uneRuntimeException
se produit avant d'appelerObservable#notifyObservers()
et qu'elle n'est pas interceptée, le thread ne sera pas redémarré.🎜Généralement, l'emplacement où l'exception de thread observée se produit peut être déterminé, l'exception est interceptée à l'emplacement déterminé et le thread est redémarré. La méthode de traitement de la connexion en question est réalisable.