Saya membaca tentang isu pemantauan semula benang
http://www.cnblogs.com/ae6623...
Mod pemerhati yang diperkenalkan dalam artikel ini, saya rasa ia meletakkan kod utama untuk memulakan semula benang ke dalam badan benang Apa patutkah saya lakukan jika terdapat pengecualian yang tidak ditangkap dalam blok tangkapan? Saya tidak tahu banyak tentang kelas Pengecualian Bolehkah semua pengecualian ditangkap?
Exception
ialah kelas induk bagi semua kelas pengecualian,catch(Exception)
boleh menangkap semua pengecualianException
是所有异常类的父类,catch(Exception)
能捕获到所有的异常通常异常又分为
Exception
和RuntimeException
Exception
必须捕获, 发生异常时, 会执行catch
中的业务RuntimeException
, 发生异常时, 如果不捕获会中断当前线程, 如果捕获和Exception
一样通常线程退出(死亡)的条件
线程业务执行完毕
线程发生未捕获的
RuntimeException
你给的文章中重启线程的本质是让上一个线程
A
已经结束了(break
), 调用Observable#notifyObservers()
重新启动了一个线程A1
,也就是说如果没有调用Observable#notifyObservers()
的话, 是不会重启线程的.所以, 如果在调用
Biasanya pengecualian dibahagikan kepadaObservable#notifyObservers()
之前发生了RuntimeException
Exception
danRuntimeException
#🎜🎜#Exception
mesti ditangkap Apabila pengecualian berlaku, perniagaan dalamcatch
akan dilaksanakan #🎜🎜#RuntimeException
, apabila pengecualian berlaku, jika ia tidak ditangkap, urutan semasa akan terganggu Jika ditangkap, ia adalah sama denganException
#🎜🎜#RuntimeException
#🎜🎜#A
telah tamat (break
) dan memanggilObservable#notifyObservers( )Memulakan semula urutan
A1
, yang bermaksud bahawa jikaObservable#notifyObservers()
tidak dipanggil, thread tidak akan dimulakan semula #🎜🎜#. #🎜🎜#Jadi, jikaRuntimeException
berlaku sebelum memanggilObservable#notifyObservers()
dan ia tidak ditangkap, urutan tidak akan dimulakan semula.#🎜🎜#Secara amnya, lokasi di mana pengecualian benang yang diperhatikan berlaku boleh ditentukan, pengecualian ditangkap di lokasi yang ditentukan dan benang dimulakan semula. Kaedah pemprosesan sambungan subjek boleh dilaksanakan.