我有以下代碼:在方法中拋出異常會導致方法返回嗎?
public static Point operator /(Point point, double value)
{
if (value == 0)
{
throw new DivideByZeroException("Cannot divide by zero");
return Point.Origin;
}
return new Point(point.X/value, point.Y/value, point.Z/value);
}
而且第一return語句(return Point.Origin;
)突出綠色在Visual Studio。當光標懸停在帶下劃線的文本上時,消息顯示「檢測到無法訪問的代碼」。這導致我在標題行中指出我的問題:
在方法中拋出異常會導致方法返回嗎?
謝謝,我明白了現在:在方法中拋出異常會導致程序要麼去的方法中形成適當的異常處理程序的執行流程,(如catch或finally語句),如果有的話,或退出的方法和上浮調用堆棧直到它被處理。在任何情況下,'throw new Exception'之後的方法中的其他代碼以及任何catch/finally塊之外的代碼將永遠不會執行。爲了澄清和回答問題,該方法不返回值,但是它在程序執行返回到調用方法的意義上「返回」。 –