스레드 모니터링 재시작 문제에 대해 읽었습니다http://www.cnblogs.com/ae6623...이 글에서 소개한 옵저버 모드는 스레드를 재시작하기 위한 키 코드를 스레드 바디에 넣는 것 같아요 뭐 catch 블록에 catch되지 않은 예외가 있으면 어떻게 해야 하나요? Exception 클래스에 대해 잘 모릅니다. 그렇다면 모든 예외를 catch할 수 있나요? 그렇다면 모니터링할 수 없는 누락된 스레드 종료 이유가 있나요?
欢迎选择我的课程,让我们一起见证您的进步~~
Exception是所有异常类的父类, catch(Exception)모든 예외를 포착할 수 있음
Exception
catch(Exception)
보통 이상현상은 Exception和RuntimeException
RuntimeException
Exception必须捕获, 发生异常时, 会执行catch
catch
RuntimeException, 发生异常时, 如果不捕获会中断当前线程, 如果捕获和Exception 똑같아
스레드 종료(죽음)에 대한 일반 조건
스레드 사업 수행 완료
잡지 못한 스레드가 발생했습니다RuntimeException
주신 글에 쓰레드 재시작의 핵심은 이전 쓰레드A已经结束了(break), 调用Observable#notifyObservers()重新启动了一个线程A1,也就是说如果没有调用Observable#notifyObservers()를 사용하면 쓰레드가 재시작되지 않는다는 것입니다.
A
break
Observable#notifyObservers()
A1
따라서 Observable#notifyObservers()를 호출하기 전에 Observable#notifyObservers()之前发生了RuntimeException가 발생하고 이를 포착하지 못하면 스레드가 다시 시작되지 않습니다.
일반적으로 관찰된 스레드 예외가 발생한 위치를 결정할 수 있으며, 결정된 위치에서 예외를 포착하고 스레드를 다시 시작합니다. 주체 연결을 처리하는 방법이 가능합니다.
Exception
是所有异常类的父类,catch(Exception)
모든 예외를 포착할 수 있음보통 이상현상은
으로 나누어집니다.Exception
和RuntimeException
Exception
必须捕获, 发生异常时, 会执行catch
RuntimeException
, 发生异常时, 如果不捕获会中断当前线程, 如果捕获和Exception
똑같아스레드 종료(죽음)에 대한 일반 조건
스레드 사업 수행 완료
잡지 못한 스레드가 발생했습니다
RuntimeException
주신 글에 쓰레드 재시작의 핵심은 이전 쓰레드
A
已经结束了(break
), 调用Observable#notifyObservers()
重新启动了一个线程A1
,也就是说如果没有调用Observable#notifyObservers()
를 사용하면 쓰레드가 재시작되지 않는다는 것입니다.따라서
Observable#notifyObservers()
를 호출하기 전에Observable#notifyObservers()
之前发生了RuntimeException
가 발생하고 이를 포착하지 못하면 스레드가 다시 시작되지 않습니다.일반적으로 관찰된 스레드 예외가 발생한 위치를 결정할 수 있으며, 결정된 위치에서 예외를 포착하고 스레드를 다시 시작합니다. 주체 연결을 처리하는 방법이 가능합니다.