幾種捕獲ClientDataSet.ApplyUpdates和SocketConnection異常的方法比較
問題:如何捕獲ClientDataSet.ApplyUpdates的錯誤,不用ReconcileError呢?
//如果用這個錯誤處理,我的事務回滾卻不知放在何處才妙,並且我不是想用這個錯誤處理
解答一:
//---------------------------------------------------------------
//據我所知,只能用ReconcileError 可以用下面的方法判斷是否錯誤
//---------------------------------------------------------------
解答二:
//---------------------------------------------------------------
在DataSetProvider的onUpdateError
然後就可以在客戶端做如下處理:
//----------------------------------------------------------------
解答三:
其實真正的捕獲ClientDataSet.ApplyUpdate異常的方法應該是在Apllication的異常中捕獲並處理它。因為 ClientDataSet丟擲的異常為執行緒(程式?)異常,在ClientDataSet的ApplyUpdate中用 try...except...end;是無法捕獲的。
具體方法為:在公共單元如DataModule中放置一個ApplicationEvent件,在該控制元件的OnException事件中捕獲異常,該窗體應在所有有可能產生ApplyUpdate或Connection異常的窗體之前建立。
相關文章
- 捕獲 React 異常React
- iOS異常捕獲iOS
- python異常捕獲Python
- MySQL儲存過程中捕獲異常的方法MySql儲存過程
- Auth 授權的異常捕獲
- 異常的捕獲及處理
- 分割陣列的幾種方法比較陣列
- iOS 日誌重定向和異常捕獲iOS
- android 異常捕獲-UncaughtExceptionHandlerAndroidException
- 記錄Javascript 異常捕獲JavaScript
- PHP使用trycatch,捕獲異常PHP
- 【筆記】forall 異常捕獲筆記
- 前端異常捕獲與上報前端
- PLSQL宣告部分異常捕獲SQL
- 儲存過程——異常捕獲&列印異常資訊儲存過程
- 幾種排序的比較排序
- python中如何捕獲異常Python
- JS 使用try catch捕獲異常JS
- python動態捕獲異常Python
- oracle異常捕獲程式碼(轉)Oracle
- 前端JavaScript 常見的報錯及異常捕獲前端JavaScript
- C#中有關異常的捕獲演示C#
- Flutter異常捕獲和Crash崩潰日誌收集Flutter
- 談談前端異常捕獲與上報前端
- DRF之異常捕獲原始碼分析原始碼
- 捕獲不到異常嘗試除以0
- 幾種常見的中文分詞包的分析與比較中文分詞
- UITableView設定全屏分隔線的幾種方法比較UIView
- 前端開發中的Error以及異常捕獲前端Error
- Java捕獲非檢查異常----UncaughtExceptionHandler的使用JavaException
- 異常處理機制(二)之異常處理與捕獲
- spring-boot 統一異常捕獲Springboot
- SpringBoot之全域性捕獲異常Spring Boot
- 在 C++ 中捕獲 Python 異常C++Python
- Android 全域性異常捕獲之CrashHandlerAndroid
- Auto.js Pro 資料獲取 與 異常捕獲JS
- 【MyBatis】幾種批量插入效率的比較MyBatis
- 幾種中文字型的比較