SlideShare a Scribd company logo
1 of 29
Download to read offline
例外處理設計
Johnny Lee 2016/3/11
例外處理的重要性
影響公司獲利
客戶對產品不滿意
工作無法持續 用戶體驗不佳
系統需定期
重新啟動
系統不穩定 開發人員忙於救火
使用者對產品
有很多抱怨
Problem
RD加班loop
肝痛痛der~~
例外處理的重要性 - 為什麼系統會不穩定
● 正確性(correctness)不足
○ 規格與實作相符的程度
○ 程式語言,資料結構,物件導向,設計模式 ...
● 強健度(robustness)不足
○ 系統對於異常(規格書中沒有描述)狀況的回應能力
-Myer, Object-Oriented Software Construction, 2nd ed., Prentice Hall, 1997
強健度
(規格)
正確性
例外處理的重要性 - 為什麼系統會不穩定
影響公司獲利
客戶對產品不滿意
工作無法持續 用戶體驗不佳
系統需定期
重新啟動
系統不穩定 開發人員忙於救火
使用者對產品
有很多抱怨
系統正確性不足 系統穩定性不足
Root Cause Root Cause
Problem
影響系統強健度的因素 - 名詞解釋
● Failure(失效)
● Error(錯誤)
● Fault(缺陷)
● Exception(異常)
影響系統強健度的因素 - 名詞解釋
● Failure(失效)
○ 軟體元件(function, method或service)所提供的服務與其功能規格 (function specification)不符時
稱為服務失效(service failure)
影響系統強健度的因素 - 名詞解釋
● Error(錯誤)
○ 軟體內部處於錯誤狀態(erroneous state),此狀態可能會使該元件執行失敗,因而導致 failure
○ 反之,如果軟體元件可以將錯誤狀態加以修復,回到沒有錯誤的狀態,則可以避免發生 failure
影響系統強健度的因素 - 名詞解釋
● Fault(缺陷)
○ 假設或是經過判斷後確認導致 error發生的原因
○ 依據產生原因分類
■ Design fault (設計缺陷)
■ Component fault (元件缺陷)
○ 依據存在時間長短分類
■ Transient fault (暫態缺陷)
■ Intermittent fault (間歇缺陷)
■ Permanent fault (永久缺陷)
○ 依據發生原因分類
■ Development fault (開發缺陷)
■ Physical fault (實體缺陷)
■ Interaction fault (互動缺陷)
○ 依據有沒有引爆分類
■ Active fault (活躍缺陷)
■ Dormant fault (休眠缺陷)
影響系統強健度的因素 - Recap
影響系統強健度的因素 - Quiz (基本題)
● 找不到資料要回傳Null還是丟出Exception?
○ public List<Student> queryStudents(String id)
影響系統強健度的因素 - Quiz (進階題)
● Exception(異常)
○ 程式語言中用來表達 error與failure的概念
○ Caller收到writeFile函數丟出的IOException
■ 這個exception在writeFile函數內部代表____ (error / failure)
■ 這個exception對於caller來說代表_______ (error / failure)
我想要超強健永遠不會crash的系統 -
例外處理 VS. 容錯設計
● 例外處理 (exception handling)
○ 負責處理component fault(可預期的錯誤狀況)
● 容錯設計 (fault-tolerant programming)
○ 負責處理design fault (不可預期的錯誤狀況)
○ 要容忍程式裡面的錯誤,程式有錯系統也必須正常執行
● 我在實作的時候都是收到exception,都是錯誤處理,有什麼不同?
○ 對象不同
○ 處理成本不同
定義系統強健度等級
● 等級0: 未定義 (Undefined)
● 等級1:錯誤回報 (Error-reporting)
○ 傳遞所有未被處理的例外
○ 在主程式中回報所有例外
● 等級2:狀態回復 (State-recovery)
○ Error handling
■ 關注系統內部狀態
■ Backward recovery
● state-based
● operation-based
○ Cleanup
■ 外部資源的清理,避免資源洩漏
定義系統強健度等級
● 等級3:行為回復 (Behavior-recovery)
○ Fault handling
■ 如何排除fault
■ 診斷(diagnosis)
■ 隔離(isolation)
■ 重新組態(reconfiguration)
■ 重新初始化(reinitialization)
○ Retry with alternative
■ 設計多樣性
● N版本程式設計
■ 功能多樣性
● 不同的設計,不同的實作
■ 資料多樣性
● 多種輸入的參數資料
■ 時序多樣性
例外處理第一課
例外處理第一課 - Checked與Unchecked例外
例外處理第一課 -
Checked與Unchecked例外的語意與問題
● Checked(受檢) & unchecked(非受檢) exception
○ 《Effective Java, 2nd》
■ Using checked exceptions for recoverable conditions
■ Using runtime (unchecked) exceptions for programming errors
○ Checked exception follows handle-or-declare rule(處理或宣告原則)
● 實務上的問題
○ 只要有IO操作都附贈IOException,怎麼處理?
● 例外脈絡 (exception context)
● 物件脈絡 (object context)
● 局部脈絡 (local context)
● 架構脈絡 (architecture context)
收到例外怎麼處理? - 例外處理的四種脈絡
例外脈絡 (exception context)
● 例外處理程序(exception handler)從例外物件所獲得的資訊
○ 由程式語言執行環境傳入 (Java VM)
■ 產生例外的函數名稱
■ 產生例外的程式碼行號
■ 產生例外當時的stack trace
○ 例外產生者(signaler)傳入
■ 例外串接(exception chaning)
物件脈絡 (object context)
● 表示一個物件可以存取到的資訊,包含物件的資料成員(data member)和全域變
數
局部脈絡 (local context)
● 任何程式區塊形成的一個範圍(scope)便可算是一個local context,例如一個函數
範圍
架構脈絡 (architecture context)
● 依據exception context, object context和local context都無法決定例外處理的設
計方法時,需要擴大範圍,參考architecture context,從軟體架構的角度評估例
外處理策略
○ 元件所處在的層級
○ 元件是否共用
○ ...
● 不能處理的,就往外傳吧
Acceptor
GameServer
AppWin
2. rethrow
1. throw
3. recover
4. wrap
Message
5. report
JVM
Service Layer
Application
Layer
Presentation
Layer
有坑別跳 - 例外處理的壞味道
● 用Return Code表達錯誤狀況
○ 正常程式邏輯和處理異常邏輯交錯
○ 開發人員忘記檢查return code,導致錯誤被忽略,降低系統強健度且增加除錯難度
有坑別跳 - 例外處理的壞味道
● 當成備胎的例外處理程序(Spare Handler)
○ 將替代方案寫在catch block裡只能重試一次
○ 若要多次重試,必須要在 catch block中再加入try statement,形成nested try statement
○ Catch block只負責try block的error handling和fault handling,將fallback solution套入其中會讓
程式結構更加複雜
有坑別跳 - 例外處理的壞味道
● Resourceful try clause
○ 比SpareHandler更好的做法
快速背一下 - 例外類別設計與使用技巧
● 用哪裡出問題來命名,而不是誰丟出例外
○ withdraw函數在存款餘額不足時丟出的例外
■ 誰丟出例外
● ATMException
● WithdrawException
■ 出了什麼問題
● NotEnoughMoneyException
● Why?
快速背一下 - 例外類別設計與使用技巧
● 將低階層例外轉成高階層所理解的例外
○ 不要將低階層的實作例外直接跨層傳遞給上層的人
○ 降低收到例外的人和底層實作 內容的耦合度
● 範例:saveProperty()
○ 使用檔案儲存設定檔
■ public void saveProperty() throws IOException
○ 使用資料庫儲存設定資料
■ public void saveProperty() throws SQLException
○ 隱藏細節
■ public void saveProperty() throws PropertyManipulationException
快速背一下 - 例外類別設計與使用技巧
● Smart Exception (聰明例外)
○ 當客戶端捕捉到例外之後,有時候需要依據例外發生的原因而設計不同的例外處理方式
○ 在例外中包含列舉類別,來代表錯誤發生的原因,只要用一個例外就能表示多種異常狀況
參考資料
● 笑談軟體工程:例外處理的逆襲
● 陳建村
● 搞笑談軟工

More Related Content

What's hot

JPAのキャッシュを使ったアプリケーション高速化手法
JPAのキャッシュを使ったアプリケーション高速化手法JPAのキャッシュを使ったアプリケーション高速化手法
JPAのキャッシュを使ったアプリケーション高速化手法Chihiro Ito
 
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようCognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようShuto Suzuki
 
Laravelとテストについて
LaravelとテストについてLaravelとテストについて
LaravelとテストについてTakeo Noda
 
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例Recruit Technologies
 
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)parrotstudio
 
ソフトウェアテスト入門
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門Preferred Networks
 
漫談重構
漫談重構漫談重構
漫談重構teddysoft
 
ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011H Iseri
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことBIGLOBE Inc.
 
2022_sakura-yube_ddd.pdf
2022_sakura-yube_ddd.pdf2022_sakura-yube_ddd.pdf
2022_sakura-yube_ddd.pdftoshiki kawai
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門Takuya Kitamura
 
Design Patterns這樣學就會了:入門班 Day1 教材
Design Patterns這樣學就會了:入門班 Day1 教材Design Patterns這樣學就會了:入門班 Day1 教材
Design Patterns這樣學就會了:入門班 Day1 教材teddysoft
 
おすすめVimプラグインまとめ
おすすめVimプラグインまとめおすすめVimプラグインまとめ
おすすめVimプラグインまとめShun Iwase
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring増田 亨
 
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計Andrew Wu
 
DDD TW Conference 2020 與RD一起跳坑DDD (20201127)
DDD TW Conference 2020 與RD一起跳坑DDD (20201127)DDD TW Conference 2020 與RD一起跳坑DDD (20201127)
DDD TW Conference 2020 與RD一起跳坑DDD (20201127)Sylvia Yang
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)mosa siru
 
絶対に止まらないバックボーン
絶対に止まらないバックボーン絶対に止まらないバックボーン
絶対に止まらないバックボーンIIJ
 

What's hot (20)

ログについて改めて考えてみた
ログについて改めて考えてみたログについて改めて考えてみた
ログについて改めて考えてみた
 
JPAのキャッシュを使ったアプリケーション高速化手法
JPAのキャッシュを使ったアプリケーション高速化手法JPAのキャッシュを使ったアプリケーション高速化手法
JPAのキャッシュを使ったアプリケーション高速化手法
 
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようCognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
 
Laravelとテストについて
LaravelとテストについてLaravelとテストについて
Laravelとテストについて
 
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
 
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
 
ソフトウェアテスト入門
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門
 
漫談重構
漫談重構漫談重構
漫談重構
 
ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
 
2022_sakura-yube_ddd.pdf
2022_sakura-yube_ddd.pdf2022_sakura-yube_ddd.pdf
2022_sakura-yube_ddd.pdf
 
Helidon 概要
Helidon 概要Helidon 概要
Helidon 概要
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
Design Patterns這樣學就會了:入門班 Day1 教材
Design Patterns這樣學就會了:入門班 Day1 教材Design Patterns這樣學就會了:入門班 Day1 教材
Design Patterns這樣學就會了:入門班 Day1 教材
 
おすすめVimプラグインまとめ
おすすめVimプラグインまとめおすすめVimプラグインまとめ
おすすめVimプラグインまとめ
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
 
DDD TW Conference 2020 與RD一起跳坑DDD (20201127)
DDD TW Conference 2020 與RD一起跳坑DDD (20201127)DDD TW Conference 2020 與RD一起跳坑DDD (20201127)
DDD TW Conference 2020 與RD一起跳坑DDD (20201127)
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
絶対に止まらないバックボーン
絶対に止まらないバックボーン絶対に止まらないバックボーン
絶対に止まらないバックボーン
 

Viewers also liked

大型App面臨的挑戰
大型App面臨的挑戰大型App面臨的挑戰
大型App面臨的挑戰Chih-Chung Lee
 
Android architecture blueprints overview
Android architecture blueprints overviewAndroid architecture blueprints overview
Android architecture blueprints overviewChih-Chung Lee
 
魅力客服(九)如何處理客怨
魅力客服(九)如何處理客怨魅力客服(九)如何處理客怨
魅力客服(九)如何處理客怨Wendy Yang
 
顧客抱怨與危機處理
顧客抱怨與危機處理顧客抱怨與危機處理
顧客抱怨與危機處理Zih-Fang Chen
 
顧客服務及客訴處理 -詹翔霖教授-新海
 顧客服務及客訴處理 -詹翔霖教授-新海 顧客服務及客訴處理 -詹翔霖教授-新海
顧客服務及客訴處理 -詹翔霖教授-新海翔霖 詹
 
天下雜誌出版《給未來的自己:找尋生命中的五片拼圖,成為想被追隨的人》
天下雜誌出版《給未來的自己:找尋生命中的五片拼圖,成為想被追隨的人》天下雜誌出版《給未來的自己:找尋生命中的五片拼圖,成為想被追隨的人》
天下雜誌出版《給未來的自己:找尋生命中的五片拼圖,成為想被追隨的人》cwbook
 
例外處理實務
例外處理實務例外處理實務
例外處理實務Jeff Chu
 
例外處理與單元測試
例外處理與單元測試例外處理與單元測試
例外處理與單元測試國昭 張
 
Extreme programming(古時候的簡報備份)
Extreme programming(古時候的簡報備份)Extreme programming(古時候的簡報備份)
Extreme programming(古時候的簡報備份)Hsin-lin Cheng
 
為什麼Method數超過65535會build fail?
為什麼Method數超過65535會build fail?為什麼Method數超過65535會build fail?
為什麼Method數超過65535會build fail?Chih-Chung Lee
 
HTC RE Camera 開發分享
HTC RE Camera 開發分享HTC RE Camera 開發分享
HTC RE Camera 開發分享Chih-Chung Lee
 
[教材] 例外處理設計與重構實作班201309
[教材] 例外處理設計與重構實作班201309[教材] 例外處理設計與重構實作班201309
[教材] 例外處理設計與重構實作班201309teddysoft
 
102.10.17 客戶抱怨與應對處理技巧-瑛誼國際有限公司-詹翔霖教授
102.10.17 客戶抱怨與應對處理技巧-瑛誼國際有限公司-詹翔霖教授102.10.17 客戶抱怨與應對處理技巧-瑛誼國際有限公司-詹翔霖教授
102.10.17 客戶抱怨與應對處理技巧-瑛誼國際有限公司-詹翔霖教授翔霖 詹
 
國軍校級軍官退前職訓管理班 服務人員應對管理-詹翔霖教授
國軍校級軍官退前職訓管理班 服務人員應對管理-詹翔霖教授國軍校級軍官退前職訓管理班 服務人員應對管理-詹翔霖教授
國軍校級軍官退前職訓管理班 服務人員應對管理-詹翔霖教授翔霖 詹
 
客人教會我的100個心法
客人教會我的100個心法客人教會我的100個心法
客人教會我的100個心法Pinsian William Wu
 
感動70億人心才是好設計
感動70億人心才是好設計 感動70億人心才是好設計
感動70億人心才是好設計 Pinsian William Wu
 
軟體組裝心得分享
軟體組裝心得分享軟體組裝心得分享
軟體組裝心得分享Wen Liao
 
Model View Presenter for Android
Model View Presenter for AndroidModel View Presenter for Android
Model View Presenter for Androidshinnosuke kugimiya
 
顧客抱怨分析與處理技巧
顧客抱怨分析與處理技巧顧客抱怨分析與處理技巧
顧客抱怨分析與處理技巧Ching-Chieh Huang
 

Viewers also liked (20)

大型App面臨的挑戰
大型App面臨的挑戰大型App面臨的挑戰
大型App面臨的挑戰
 
Android architecture blueprints overview
Android architecture blueprints overviewAndroid architecture blueprints overview
Android architecture blueprints overview
 
魅力客服(九)如何處理客怨
魅力客服(九)如何處理客怨魅力客服(九)如何處理客怨
魅力客服(九)如何處理客怨
 
顧客抱怨與危機處理
顧客抱怨與危機處理顧客抱怨與危機處理
顧客抱怨與危機處理
 
C#
C#C#
C#
 
顧客服務及客訴處理 -詹翔霖教授-新海
 顧客服務及客訴處理 -詹翔霖教授-新海 顧客服務及客訴處理 -詹翔霖教授-新海
顧客服務及客訴處理 -詹翔霖教授-新海
 
天下雜誌出版《給未來的自己:找尋生命中的五片拼圖,成為想被追隨的人》
天下雜誌出版《給未來的自己:找尋生命中的五片拼圖,成為想被追隨的人》天下雜誌出版《給未來的自己:找尋生命中的五片拼圖,成為想被追隨的人》
天下雜誌出版《給未來的自己:找尋生命中的五片拼圖,成為想被追隨的人》
 
例外處理實務
例外處理實務例外處理實務
例外處理實務
 
例外處理與單元測試
例外處理與單元測試例外處理與單元測試
例外處理與單元測試
 
Extreme programming(古時候的簡報備份)
Extreme programming(古時候的簡報備份)Extreme programming(古時候的簡報備份)
Extreme programming(古時候的簡報備份)
 
為什麼Method數超過65535會build fail?
為什麼Method數超過65535會build fail?為什麼Method數超過65535會build fail?
為什麼Method數超過65535會build fail?
 
HTC RE Camera 開發分享
HTC RE Camera 開發分享HTC RE Camera 開發分享
HTC RE Camera 開發分享
 
[教材] 例外處理設計與重構實作班201309
[教材] 例外處理設計與重構實作班201309[教材] 例外處理設計與重構實作班201309
[教材] 例外處理設計與重構實作班201309
 
102.10.17 客戶抱怨與應對處理技巧-瑛誼國際有限公司-詹翔霖教授
102.10.17 客戶抱怨與應對處理技巧-瑛誼國際有限公司-詹翔霖教授102.10.17 客戶抱怨與應對處理技巧-瑛誼國際有限公司-詹翔霖教授
102.10.17 客戶抱怨與應對處理技巧-瑛誼國際有限公司-詹翔霖教授
 
國軍校級軍官退前職訓管理班 服務人員應對管理-詹翔霖教授
國軍校級軍官退前職訓管理班 服務人員應對管理-詹翔霖教授國軍校級軍官退前職訓管理班 服務人員應對管理-詹翔霖教授
國軍校級軍官退前職訓管理班 服務人員應對管理-詹翔霖教授
 
客人教會我的100個心法
客人教會我的100個心法客人教會我的100個心法
客人教會我的100個心法
 
感動70億人心才是好設計
感動70億人心才是好設計 感動70億人心才是好設計
感動70億人心才是好設計
 
軟體組裝心得分享
軟體組裝心得分享軟體組裝心得分享
軟體組裝心得分享
 
Model View Presenter for Android
Model View Presenter for AndroidModel View Presenter for Android
Model View Presenter for Android
 
顧客抱怨分析與處理技巧
顧客抱怨分析與處理技巧顧客抱怨分析與處理技巧
顧客抱怨分析與處理技巧
 

Similar to 例外處理設計

基于Ht rca缺陷分析的测试改进-china test-张玲玲
基于Ht rca缺陷分析的测试改进-china test-张玲玲基于Ht rca缺陷分析的测试改进-china test-张玲玲
基于Ht rca缺陷分析的测试改进-china test-张玲玲drewz lin
 
七天基于风险测试—Chinatest
七天基于风险测试—Chinatest七天基于风险测试—Chinatest
七天基于风险测试—Chinatestdrewz lin
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8 浒 刘
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章浒 刘
 
敏捷自动化测试中的教训 45min 中文
敏捷自动化测试中的教训 45min   中文敏捷自动化测试中的教训 45min   中文
敏捷自动化测试中的教训 45min 中文Shuyong Lin
 
Mobile app的測試v2
Mobile app的測試v2Mobile app的測試v2
Mobile app的測試v2Mr PM
 
一天交易达十亿次: 由核心J2Ee(Tm) 模式架构成的J2Ee(Tm)系统
一天交易达十亿次: 由核心J2Ee(Tm) 模式架构成的J2Ee(Tm)系统一天交易达十亿次: 由核心J2Ee(Tm) 模式架构成的J2Ee(Tm)系统
一天交易达十亿次: 由核心J2Ee(Tm) 模式架构成的J2Ee(Tm)系统yiditushe
 
SRE Study Notes - Opening, CH1
SRE Study Notes - Opening, CH1SRE Study Notes - Opening, CH1
SRE Study Notes - Opening, CH1Rick Hwang
 
前端单元测试
前端单元测试前端单元测试
前端单元测试LC2009
 
SRE CH33/CH34 - Lessons Learned from Other Industries/Conclusion
SRE CH33/CH34 - Lessons Learned from Other Industries/ConclusionSRE CH33/CH34 - Lessons Learned from Other Industries/Conclusion
SRE CH33/CH34 - Lessons Learned from Other Industries/ConclusionRick Hwang
 
Angular 深入淺出測試篇:單元測試入門
Angular 深入淺出測試篇:單元測試入門Angular 深入淺出測試篇:單元測試入門
Angular 深入淺出測試篇:單元測試入門志龍 陳
 
Refactoring with Patterns in PHP
Refactoring with Patterns in PHPRefactoring with Patterns in PHP
Refactoring with Patterns in PHPJace Ju
 
App operationattaobao-velocity2010 bj-final
App operationattaobao-velocity2010 bj-finalApp operationattaobao-velocity2010 bj-final
App operationattaobao-velocity2010 bj-finaliambuku
 
敏捷开发技术最佳实践(统一敏捷开发过程)
敏捷开发技术最佳实践(统一敏捷开发过程)敏捷开发技术最佳实践(统一敏捷开发过程)
敏捷开发技术最佳实践(统一敏捷开发过程)Weijun Zhong
 
Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践drewz lin
 
2.ie培訓教材
2.ie培訓教材2.ie培訓教材
2.ie培訓教材營松 林
 
2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生appuniverz
 
软件工程 第七章
软件工程 第七章软件工程 第七章
软件工程 第七章浒 刘
 
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网构建可维护的Javascript 小米网
构建可维护的Javascript 小米网yang alex
 

Similar to 例外處理設計 (20)

基于Ht rca缺陷分析的测试改进-china test-张玲玲
基于Ht rca缺陷分析的测试改进-china test-张玲玲基于Ht rca缺陷分析的测试改进-china test-张玲玲
基于Ht rca缺陷分析的测试改进-china test-张玲玲
 
七天基于风险测试—Chinatest
七天基于风险测试—Chinatest七天基于风险测试—Chinatest
七天基于风险测试—Chinatest
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章
 
敏捷自动化测试中的教训 45min 中文
敏捷自动化测试中的教训 45min   中文敏捷自动化测试中的教训 45min   中文
敏捷自动化测试中的教训 45min 中文
 
Mobile app的測試v2
Mobile app的測試v2Mobile app的測試v2
Mobile app的測試v2
 
一天交易达十亿次: 由核心J2Ee(Tm) 模式架构成的J2Ee(Tm)系统
一天交易达十亿次: 由核心J2Ee(Tm) 模式架构成的J2Ee(Tm)系统一天交易达十亿次: 由核心J2Ee(Tm) 模式架构成的J2Ee(Tm)系统
一天交易达十亿次: 由核心J2Ee(Tm) 模式架构成的J2Ee(Tm)系统
 
SRE Study Notes - Opening, CH1
SRE Study Notes - Opening, CH1SRE Study Notes - Opening, CH1
SRE Study Notes - Opening, CH1
 
前端单元测试
前端单元测试前端单元测试
前端单元测试
 
SRE CH33/CH34 - Lessons Learned from Other Industries/Conclusion
SRE CH33/CH34 - Lessons Learned from Other Industries/ConclusionSRE CH33/CH34 - Lessons Learned from Other Industries/Conclusion
SRE CH33/CH34 - Lessons Learned from Other Industries/Conclusion
 
Angular 深入淺出測試篇:單元測試入門
Angular 深入淺出測試篇:單元測試入門Angular 深入淺出測試篇:單元測試入門
Angular 深入淺出測試篇:單元測試入門
 
Refactoring with Patterns in PHP
Refactoring with Patterns in PHPRefactoring with Patterns in PHP
Refactoring with Patterns in PHP
 
App operationattaobao-velocity2010 bj-final
App operationattaobao-velocity2010 bj-finalApp operationattaobao-velocity2010 bj-final
App operationattaobao-velocity2010 bj-final
 
敏捷开发技术最佳实践(统一敏捷开发过程)
敏捷开发技术最佳实践(统一敏捷开发过程)敏捷开发技术最佳实践(统一敏捷开发过程)
敏捷开发技术最佳实践(统一敏捷开发过程)
 
Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践
 
2.ie培訓教材
2.ie培訓教材2.ie培訓教材
2.ie培訓教材
 
2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生
 
软件工程 第七章
软件工程 第七章软件工程 第七章
软件工程 第七章
 
8D process
8D process8D process
8D process
 
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
 

例外處理設計