原因之一是性能。抛出和捕获异常很便宜;昂贵的部分是填充堆栈跟踪。如果您
fillInStackTrace()不执行任何操作,则创建异常也很便宜。
对于廉价的异常,您可以将异常用于流控制,这可以使代码在某些情况下更易读。在实现需要更高级的流控制的
JVM语言时,可以使用它们,并且在编写actors库时它们很有用。

原因之一是性能。抛出和捕获异常很便宜;昂贵的部分是填充堆栈跟踪。如果您
fillInStackTrace()不执行任何操作,则创建异常也很便宜。
对于廉价的异常,您可以将异常用于流控制,这可以使代码在某些情况下更易读。在实现需要更高级的流控制的
JVM语言时,可以使用它们,并且在编写actors库时它们很有用。