none
Socket Exception處理方式 RRS feed

  • 問題

  • 一般exception處理方式都是用try catch做處理

    今天我想要像java能夠將問題丟給呼叫的地方(throws)做處理有辦法嗎?

    可是C#是不是沒有支援?


    http://en.csharp-online.net/CSharp_FAQ%3A_Does_CSharp_have_a_throws_clause

    找到的資料似乎都是說沒有

    順帶一提,想要往上丟的原因是在寫socket的時候建立執行緒去處理一個物件

    可是如果斷線要在main form上show錯誤訊息

    卻沒辦法使用invokeRequired

    所以才想說可不可以丟回上一層去做處理

    不知道各位大大有沒有想法


    2012年8月17日 下午 05:22

解答

  • 你要在外層的呼叫端加上 Try ... catch

    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    • 已標示為解答 ChuangMaster 2012年8月22日 上午 04:09
    2012年8月19日 上午 09:25

所有回覆

  • 當然可以往上丟

    參考 小朱的[.NET] 例外處理原則 


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2012年8月18日 上午 02:20
  • Alex_LeeZ你好

    我嘗試使用

    public static void error(){

        try
                {
                    throw new Exception();
                }
                catch (Exception)
                {
                    throw;
                }

    }

    去產生錯誤,但是我發現throw時

    出錯地方是此行

    而不是我呼叫的地方

    2012年8月18日 上午 05:09
  • 您的程式先不要做任何的try..catch例外處理, 程式執行發生例外時, 預設就會丟給呼叫者, 不需要加入任何的程式碼處理

    2012年8月18日 上午 07:32
  • Alex_LeeZ你好

    我嘗試使用

    public static void error(){

        try
                {
                    throw new Exception();
                }
                catch (Exception)
                {
                    throw;
                }

    }

    去產生錯誤,但是我發現throw時

    出錯地方是此行

    而不是我呼叫的地方

    1)移除里边的try……catch。

    2)在调用error方法的函数体内用try……catch……块包含该函数。


    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年8月19日 上午 06:26
  • 你要在外層的呼叫端加上 Try ... catch

    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    • 已標示為解答 ChuangMaster 2012年8月22日 上午 04:09
    2012年8月19日 上午 09:25