Di Java, pengendalian InterruptedException adalah penting apabila berurusan dengan kaedah yang boleh membuang pengecualian ini. Dua pendekatan biasa untuk mengendalikan gangguan ini ialah:
try { // ... } catch (InterruptedException e) { Thread.currentThread().interrupt(); }
Pendekatan ini sesuai apabila InterruptedException mewakili hasil yang sah bagi kaedah dan harus disebarkan kepada pemanggil. Sebagai contoh, jika kaedah melakukan panggilan rangkaian menyekat yang melemparkan InterruptedException, masuk akal untuk membiarkan pengecualian ini disebarkan, menunjukkan bahawa operasi telah terganggu.
try { //... } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new RuntimeException(e); }
Pendekatan ini lebih disukai apabila kaedah tidak dapat menghasilkan keputusan yang sah sekiranya berlaku gangguan dan harus ditamatkan. Dengan menetapkan bendera yang terganggu (Thread.currentThread().interrupt()), ia memastikan bahawa utas kekal terganggu, memaklumkan pemanggil tentang gangguan itu.
Yang sesuai pendekatan bergantung pada situasi:
void printSum(Server server) { try { int sum = computeSum(server); System.out.println("Sum: " + sum); } catch (InterruptedException e) { Thread.currentThread().interrupt(); // set interrupt flag System.out.println("Failed to compute sum"); } }
Di sini, kaedah printSum tidak dapat menyelesaikan operasinya jika terganggu, jadi ia menangkap InterruptedException, menetapkan gangguan bendera, dan mencetak mesej alternatif.
Atas ialah kandungan terperinci Bagaimanakah InterruptedExceptions Harus Dikendalikan di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!