suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Java-Thread-Überwachung, Thread-Neustart, Probleme mit dem Beobachtermodus

Ich habe über das Problem des Neustarts der Thread-Überwachung gelesen
http://www.cnblogs.com/ae6623...
Der in diesem Artikel vorgestellte Beobachtermodus fügt meiner Meinung nach den Schlüsselcode zum Neustarten des Threads in den Thread-Körper ein. Was Was soll ich tun, wenn es im Catch-Block eine nicht abgefangene Ausnahme gibt? Ich weiß nicht viel über die Exception-Klasse. Können alle Ausnahmen abgefangen werden?

天蓬老师天蓬老师2786 Tage vor806

Antworte allen(2)Ich werde antworten

  • 漂亮男人

    漂亮男人2017-05-27 17:43:04

    Exception是所有异常类的父类, catch(Exception)能捕获到所有的异常

    通常异常又分为ExceptionRuntimeException

    • Exception必须捕获, 发生异常时, 会执行catch中的业务

    • RuntimeException, 发生异常时, 如果不捕获会中断当前线程, 如果捕获和Exception一样

    通常线程退出(死亡)的条件

    • 线程业务执行完毕

    • 线程发生未捕获的RuntimeException

    你给的文章中重启线程的本质是让上一个线程A已经结束了(break), 调用Observable#notifyObservers()重新启动了一个线程A1,也就是说如果没有调用Observable#notifyObservers()的话, 是不会重启线程的.

    所以, 如果在调用Observable#notifyObservers()之前发生了RuntimeException, 而且未捕获的话, 线程也就不会重启了.

    Antwort
    0
  • PHP中文网

    PHP中文网2017-05-27 17:43:04

    一般情况下被观察的线程异常发生位置可以确定,在确定的位置捕捉异常并重启线程。题主连接的处理方法是可行的。

    Antwort
    0
  • StornierenAntwort