ASP.NET彈出顯示ex.Message異常信息 存在換行符和回車符處理辦法。

1.把ex.Message換成任意字符串,檢驗在catch語句塊中能夠用Response.Write方法顯示對話框。結果顯示成功,說明問題就出在ex.Message上。javascript

         2.在程序中下斷點,能夠看到ex.Message的內容以下圖:java

重點是紅色圈起來的部分,這裏邊有個回車+換行符號,估計也就是他搞的鬼,二話不說,直接把它去掉,代碼以下:spa

 try .net

 {//….  blog

}  catch (Exception ex)  ip

{  字符串

    Response.Write("<script language='javascript'>alert(\"" + ex.Message.Replace("\\r\\n", "") + "\");</script>");  get

}  string

 

但是這樣依然不行!仍是不顯示!it

        3.通過近乎崩潰的探索,終於發現了問題所在,的確是\r\n在搞鬼,只不過我替換的方式不對。下斷點的時候看到的是\r\n(上圖),這時的\已是轉義字符,用來轉義r和n,表示的真實含義是回車+換行。而我寫成\\r\\n,是在用前一個\轉義後一個\,r和n被當成了普通字符,表示的真實含義是\r\n。這樣固然就替換不到了!因此正確的寫法以下:


  try  

{  //….  

}

 catch (Exception ex)  

{  

    Response.Write("<script language='javascript'>alert(\"" + ex.Message.Replace("\r\n", "") + "\");</script>");  

}   

這樣就能夠完美顯示了!

         其實網上有不少這樣的問題,之因此答案都不對是由於他們和我犯了一樣的錯誤,轉義字符寫多了,之後碰到相似的問題直接這樣去掉回車+換行就好了(好比顯示一段讀取的文字,裏邊含有回車換行)!但願這個小經驗可以幫助你們!

轉載:http://blog.csdn.net/yangyuankp/article/details/7630115

相關文章
相關標籤/搜索