Throwable Error Exception RuntimeException的关系
阅读数:101 评论数:0
跳转到新版页面分类
python/Java
正文
一、异常之间的关系
Error是Throwable的子类,代指应用程序不应该试图捕获的严重问题。
代指应用程序应该捕获的异常。分为未检查异常(RuntimeException)和已检查异常(非RuntimeException)。
Java虚拟机正常运行期间抛出的异常的超类。
public static void m1() throws RuntimeException{
throw new RuntimeException("运行时异常,方法声明中不需要throws");
}
//同价于
public static void m1(){
throw new RuntimeException("运行时异常,方法声明中不需要throws");
}
public class NoMappingParamString extends Exception {
/*无参构造函数*/
public NoMappingParamString(){
super();
}
//用详细信息指定一个异常
public NoMappingParamString(String message){
super(message);
}
//用指定的详细信息和原因构造一个新的异常
public NoMappingParamString(String message, Throwable cause){
super(message,cause);
}
//用指定原因构造一个新的异常
public NoMappingParamString(Throwable cause) {
super(cause);
}
}
二、异常的性能优化
在Java中,构造异常对象是”十分”耗时的,其原因是在默认情况下,创建异常对象时会调用父类Throwable
的fillInStackTrace()
方法生成栈追踪信息。
(1)fillInStackTrace()
方法并没有被final修饰,这意味着子类可以重写该方法,因此我们只需要创建一个轻量级的业务异常类,重写该方法即可实现高效异常类
class MyException extends Exception {
public Throwable fillInStackTrace() {
return this;
}
}
(2)在构造函数中将writableStackTrace
置为false
即可,这样也不会抓取堆栈信息
protected RuntimeException(String message, Throwable cause,
boolean enableSuppression,
boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
}
相关推荐
原因很简单,就一句话,是不是resultType 和resultMap 弄混了?
大致的意思就是无法找到返回值对应的r
一、问题解决方法
修改为如下即可:
<if test="enterpriseIds!=null and enterpriseIds.size>0">
因为集合用size,数组用length。
二、O
1、直接常量
为了编译器可以准确的知道要生成什么样的类型,可以给直接常量后面添加后缀字符标志它的类型,若为L表示long,F表示float,D表示double。也可以利用前缀表示进制,0x表示十六进制
一、类的继承
1、说明
(1)extends关键字用于类的继承。
(2)在C++中,方法的动态绑定是使用virtual关键字来实现的,而在Java中,动态绑定是默认的形为,不需要添加额外的关键字。
(
一、创建线程
创建线程有四种方式:继承Thread类、实现Runnable接口、实现Callable接口、通过线程池创建。
1、继承Thread
重写run方法。
class A extends Th
一、Collection接口
Collection接口的iterator和toArray方法都用于获得集合中的“所有元素”。前者返回一个“iterator”对象,后者返回一个包含集合中所有元素的数组。