首先,將MyAppCustomException
定義爲抽象基類。
然後從它繼承AppNotFoundCustomException
。
這樣你就可以趕上從您的應用程序的所有異常,或者只是具體的。
下面是一些示例代碼說明了這一概念:
public abstract class MyAppCustomException : System.Exception
{
internal MyAppCustomException(string message)
: base(message)
{
}
internal MyAppCustomException(string message, System.Exception innerException)
: base(message,innerException)
{
}
}
public class AppNotFoundCustomException : MyAppCustomException
{
public AppNotFoundCustomException(): base("Could not find app")
{
}
}
而這裏的客戶try/catch
例如:
try
{
// Do Stuff
}
catch(AppNotFoundCustomException)
{
// We know how to handle this
}
catch(MyAppCustomException) // base class
{
// we don't know how to handle this, but we know it's a problem with our app
}
從'System.Exception'派生時,[最好實踐三個推薦的公共構造函數](https://msdn.microsoft.com/en-us/library/87cdya3t%28v=vs.110% 29.aspx)。也就是說,在問題描述的情況下,拋出例外可能不是最好的方法。請參閱@Hans Passant的[答案](http://stackoverflow.com/a/3471960/1497596)。 – DavidRR 2015-12-07 19:48:27