自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SwingWorker增強異常處理

開發(fā) 后端
本文介紹SwingWorker增強異常處理,要獲得construct()方法實際上拋出的異常,可以調(diào)用getTargetException()進行異常處理。

新的SwingWorker支持超時,這是通過覆蓋getTimeout()方法已返回一個非零值來實現(xiàn)的。當(dāng)超出超時時間,worker線程會被中斷。

如果想查看使用超時的例子,請參閱注釋版的getTimeout()方法和DynamicTree如何處理TimeoutException。

超時功能是用TimedCallable來實現(xiàn)的,其中使用了FutureResult的timedGet()方法。

增強的異常處理

construct()方法拋出的任何東西都會被記錄。除了死循環(huán)和死鎖,新的異常處理確保了SwingWorker處于“準(zhǔn)備好”的狀態(tài)。也就是說,它要么得到一個正確的結(jié)果,要么得到一個異常。

下面的get()方法用來取出結(jié)果。這個方法繼承自FutureResult:
◆publicObjectget()
◆throwsInvocationTargetException,InterruptedException

如果construct()拋出一個Exception,get()方法就會拋出InvocationTargetException。要獲得construct()方法實際上拋出的異常,可以調(diào)用getTargetException()進行異常處理。

如果取結(jié)果的線程在等待結(jié)果的過程中被中斷,get()方法會拋出InterruptedException——但這種情況對SwingWorker來說很罕見,因為取結(jié)果的線程通常都是事件派發(fā)線程,并且在finished()會被調(diào)用以前,結(jié)果總是已經(jīng)準(zhǔn)備好的。
更多調(diào)用工具

SwingWorker的實現(xiàn)在jozart.swingutils包中。在同一個包里,你還能找到InvokeUtils類,這個類還提供了幾個invokeXXX()方法。后臺線程可以用這些方法來在事件派發(fā)線程中獲取值和用戶輸入,再把結(jié)果返回到后臺線程。

【編輯推薦】

  1. 介紹JavaFX功能與Swing的關(guān)系
  2. 淺談Swing中l(wèi)ookandfeel源代碼
  3. 概述Swing中的Timer對象
  4. 淺析Swing中actionPerformed()方法
  5. 詳解所有的Swing核心組件
責(zé)任編輯:佚名 來源: cnblogs
相關(guān)推薦

2010-05-10 09:21:46

2009-07-17 17:47:39

SwingWorker

2009-07-10 09:30:41

SwingWorker

2009-07-17 10:58:12

SwingWorker

2009-07-10 09:05:20

SwingWorker

2009-07-17 17:41:41

SwingWorker

2009-07-17 14:57:41

SwingWorkerSwing程序

2023-12-11 14:19:00

Java程序異常

2013-08-22 17:10:09

.Net異常處理

2012-12-21 10:48:20

Java異常

2012-11-12 10:32:48

IBMdw

2018-07-11 19:41:47

MySQL定義異常異常處理

2022-12-28 08:17:19

異常處理code

2018-08-20 16:25:48

編程語言Java異常處理

2009-02-25 10:34:57

異常處理體系Python

2011-03-17 09:20:05

異常處理機制

2009-09-14 14:17:11

Linq異常處理

2010-02-22 13:35:03

WCF異常處理

2023-12-27 07:53:08

全局異常處理處理應(yīng)用

2023-10-10 13:23:18

空指針異常Java
點贊
收藏

51CTO技術(shù)棧公眾號