我对此刻的工作实习,做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