美好的一天!C#繼承和例外文本
我創建兩個類:
class A
{
public A(String name) {}
public void Func1()
{
try
{...}
catch(Exception ex)
{
Console.WriteLIne("Error at Func1 of class A"+Ex.Message);
}
}
}
class B:A
{
public B() {}
}
在Main()方法:
B b=new B(String name);
b.Func1();
而當異常comes-一個get errror是這樣的: 「錯誤在A級FUNC1」! 因此,它讓我困惑。
如何解決它?我是否應該重寫A類的每個功能,並且這樣做:
void override Func1()
{
try {
_a.Fun1();
}
catch(Exception ex)
{//My text of exception}
}
or impement interface? 請告訴我!
謝謝!
異常_stack trace_已經爲您提供此信息。你確定你想把這個文本放入你的例外嗎?異常消息通常會顯示異常的可疑原因 - 您必須知道出錯的原因才能拋出異常! – Gusdor
聽起來像試驗中發生的任何事情都是拋出與您提供的結構無關的異常。 – Oliver
@Gusdor然而,一個問題是,你會得到方法名稱和方法定義的類。所以堆棧跟蹤將顯示'A.Func1'而不是'B.Func1'。雖然可以理解並且總體上是一個好主意,但OP似乎想要運行的實際類型(這很可能意味着他的繼承樹非常奇怪:D) – Luaan