异常
- 发布
- 分类
- Java
- 篇幅
- 239 字 / 1 分钟
- 阅读
- 351
抛出异常需要构建异常栈,对异常进行捕获和处理,这个过程比较消耗系统的性能,怎么理解?
创建异常对象时会调用父类Throwable的fillInStackTrace()方法生成栈追踪信息,也就是调用native的fillInStackTrace()方法去爬取线程堆栈信息,为运行时栈做一份快照,正是这一部分开销很大
如何实现自定义异常?
继承RuntimeException,然后将writableStackTrace设置为false。
以下是RuntimeException的构造函数:
protected RuntimeException(String message, Throwable cause,
boolean enableSuppression,
boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
}