在c#中抛出异常

时间:2011-04-20 07:19:57

标签: c# java exception exception-handling

  

可能重复:
  how to use Java-style throws keyword in C#?

我现在正在工作,并做c#。距离我们主要教授Java的单人课程还有一年的学习时间。

如果我要在Java中抛出一个已检查的异常,我会使用:

public void saveToFile(String fileName) throws IOException

C#中是否有类似的语法来执行此操作但是我自己的自定义异常?

由于

2 个答案:

答案 0 :(得分:4)

在c#中,您没有声明函数可能抛出的异常。你声明一个函数:

public void saveToFile( string fileName ) {
    ....
}

抛出异常非常容易。有许多预定义的异常(例如System.IO.IOException),您可以抛出:

using System.IO

...

public void saveToFile(* string fileName ) {

    ...
    throw new IOException( )
}

如果要抛出自定义异常,则必须声明它,并确保它派生自System.Exception类。异常类可以包含任何所需的构造函数,属性或成员。 e.g。

public class MyException :Exception
{
    public int code { get; set; }
    public MyException(int c) { code = c; }
}

然后,在您的代码中,您只需抛出一个实例:

...
throw new MyException( 666 );

答案 1 :(得分:0)

NOOP。您只需catchthrow。或者将其包装成新的例外throw

public void saveToFile(string fileName)
{  
    try
    {
        // your code
    }
    catch(Exception ex)
    {
        throw;
        //or: throw new Exception("Whoops", ex);
    }
}