全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:897
推到 Plurk!
推到 Facebook!

元件產生之錯誤處理

答題得分者是:dllee
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-03 23:17:31 IP:61.228.xxx.xxx 未訂閱
請問若一個自己寫的元件在 create 時如果發現有錯誤發生, 如本來應配置記憶體, 可是失敗了, 所以這個元件就算產生了也沒有作用, 這時應該如何處理. Jesse Chan
------
Jesse Chan
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-03 23:34:00 IP:61.221.xxx.xxx 未訂閱
引言: 請問若一個自己寫的元件在 create 時如果發現有錯誤發生, 如本來應配置記憶體, 可是失敗了, 所以這個元件就算產生了也沒有作用, 這時應該如何處理.
jessechan 你好:
(1)請問你說配置記憶體失敗?? 一般我們在配置記憶體很少會失敗的,除非是
   create 了一塊超大塊的記憶體,才比較有可能導致失敗
( >
    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-04 00:48:09 IP:61.228.xxx.xxx 未訂閱
sorry, 我只是舉個例子而已, 換個情況, 假設我作一個元件規定只能佈置在 TForm 上面, 如果使用者把它放在其它的 container 上則會有錯誤產生, 則要如何處理. Jesse Chan
------
Jesse Chan
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-04 09:34:11 IP:203.73.xxx.xxx 未訂閱
引言: sorry, 我只是舉個例子而已, 換個情況, 假設我作一個元件規定只能佈置在 TForm 上面, 如果使用者把它放在其它的 container 上則會有錯誤產生, 則要如何處理.
jessechan 你好: 請參考以下的做法 ( > ( > < class="code"> class TMyPanel : public TPanel { typedef TPanel inherited; ... protected: virtual void __fastcall SetParent(TWinControl *AParent); ... }; void __fastcall TMyPanel::SetParent(TWinControl *AParent) { if( (AParent) && (!dynamic_cast(AParent)) ) throw Exception("Only a TForm is allowed to be a Parent!"); inherited::SetParent(AParent); } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-06 14:42:44 IP:61.231.xxx.xxx 未訂閱
建議您,如果在 create 元件時發生錯誤,那就 throw exception 吧!    throw Exception("XXX component crreate error!! cause by ooxx...");    這樣,對於您自己不但可以除錯,對於使用者來說也才知道是否誤用了元件。您可以參考 VCL 的原始碼,只有錯,就是 throw Exception!! 如果您的元件有分類,也可以專為您的 VCL 建一個 Exception 的分類(Class)。    以前在寫程式時,很討厭 exception ,但是現在它是我最好的除錯工具之一,也是共同開發專案時確保元件或函式正確使用的好方法! 只要在開發過程有完整的測試,不用擔心客戶會看到 exception 畫面,因為您在開發過程已可能會遇到,同時也已 DEBUG 了。    沒空更新的網頁... http://coolsite.to/dllee C及指標教學,計算機概論,資訊管理導論... http://home.kimo.com.tw/dllee.tw http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
系統時間:2024-05-03 20:31:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!