C# throw

throw 抛出 exception

throw new Exception("exception message");

在 catch 中重新抛出 exception 时不指定 exception,不然是新建一个 exception,也就丢掉了原来的 exception 的 stack trace(@System.Exception.Stacktrace)。

C# 7 新增 throw expression

value ?? throw new ArgumentNullException("Name cannot be null", nameof(value));