2012-04-17 62 views
1

想問void類型,這樣我就可以知道它的工作原理或PHP中沒有如何知道一個void運行?

我能有這樣的條件:

if(mysql_query($query)) 
{ bla bla } 
else 
{ print error } 

如何做到這樣的ASP.NET?

我試圖像這樣:

if (k.EditPassword(username.Text, oldPassTxt.Text, newPassTxt.Text) == true) 
{ 
Response.Redirect("sample.aspx"); 
} 
else 
{ print error } 

但當然,它不能是這樣的,因爲空是不是布爾

+1

您正在嘗試處理的條件是什麼? – 2012-04-17 04:02:45

+1

如果某件事情沒有成功的標誌,理想情況下,您應該能夠假設如果執行通過它,它就成功執行了(換句話說,如果它沒有拋出異常)。然而,根據誰編碼或者如何相信你,這可能不是一個安全的假設(並且這是一種相當不愉快的感覺,必須假設任何事情......)。 – Corbin 2012-04-17 04:05:50

+0

它已經解決了,對不起..我真的忘了試試。 現在它的工作..我的完整代碼: EmpWS k = new EmpWS(); 嘗試 k.EditPassword(username.Text,oldPassTxt.Text,newPassTxt.Text); } catch(Exception ex) { Response.Write(ex +「Eror」); } – 2012-04-17 04:44:02

回答

3

是這樣做可能會失敗將通知您,他們失敗了一些其他的工作方式通常無效的功能。他們往往會拋出異常:

try 
{ 
    k.EditPassword(...) 
} 
catch(ApplicationException ex) 
{ 
    // print Exception 
} 
Response.Redirect(...) 

其他時候,他們會設置一個狀態變量或東西:

k.EditPassword(...) 
if (k.Result == Result.OK) 
    Response.Redirect(...) 
else 
    // print error... 

望着文檔或源代碼,您要處理的條件是唯一的出路知道如何處理它。

+0

謝謝..我真的忘了這個嘗試捕獲條件...這個代碼我需要.. – 2012-04-17 04:42:35

0

您可以使用文字控制和文本添加到它。所以你的代碼會像這樣,

if (k.EditPassword(username.Text, oldPassTxt.Text, newPassTxt.Text) == true) 
{ 
Response.Redirect("sample.aspx"); 
} 
else 
{ Literal1.Text = error; } 

文字應該在設計文件中,你可以從工具箱中添加它。

但更好的和正確的方法是,

  1. 記錄它。 (您將需要一個日誌mecahnism)

  2. 寫單元測試:)

相關問題