我對此刻的工作實習,做C#。我距離完成uni的課程還有1年時間,我們主要教授Java。
如果我要扔在Java中checked異常,我會用:
public void saveToFile(String fileName) throws IOException
有沒有在C#中類似的語法這樣做,但我自己的自定義異常?
謝謝
我對此刻的工作實習,做C#。我距離完成uni的課程還有1年時間,我們主要教授Java。
如果我要扔在Java中checked異常,我會用:
public void saveToFile(String fileName) throws IOException
有沒有在C#中類似的語法這樣做,但我自己的自定義異常?
謝謝
Noop。你只需要catch
和throw
。或者將其包裝成一個新的例外和throw
。
public void saveToFile(string fileName)
{
try
{
// your code
}
catch(Exception ex)
{
throw;
//or: throw new Exception("Whoops", ex);
}
}
在c#中,你不會聲明函數可能拋出的異常。您正式聲明函數:
public void saveToFile(string fileName) {
....
}
拋出異常很簡單。有許多預定義的異常(如System.IO.IOException),它可以拋出:
using System.IO
...
public void saveToFile(* string fileName) {
...
throw new IOException()
}
如果你想拋出一個自定義異常,你必須聲明它,並確保它從系統的派生。異常類。你的異常類可以有你想要的任何構造函數,屬性或成員。例如
public class MyException :Exception
{
public int code { get; set; }
public MyException(int c) { code = c; }
}
然後,在你的代碼,你會簡單地拋出它的實例:
...
throw new MyException(666);
,並可能覆蓋異常類中的ToString;) – ricki 2011-04-20 07:35:24
哎呀,沒有。永遠不要做'拋出'。只要'扔'就夠了。如果重新拋出'ex',則會丟失堆棧跟蹤。 – 2011-04-20 08:17:50
@Mike,好點!更改了代碼。 – 2011-04-20 08:21:36
真棒! Downvote縮回。 – 2011-04-20 08:23:39