「java异常包装」java异常统一处理 封装
本篇文章给大家谈谈java异常包装,以及java异常统一处理 封装对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java导出大量数据,出现错误?
这种异常一般是由于调用Method类的invoke()方法,该方法所代表的指定方法抛出异常时,或者调用Constructor类的newInstance()方法,该方法所代表的底层构造方法抛出异常时,由java.lang.reflect.InvocationTargetExceptio异常包装后作为新的异常抛出而产生,默认异常信息是NULL。
因此,有可能是由于数据问题导致以反射的方式调用的方法(即:Method类代表的方法)在运行时抛出了异常,被封装成InvocationTargetExceptio异常抛到后台。所以可以去检查一下这个以反射的方式调用的方法,在调用到了什么数据的时候抛出了异常。
Java的异常是什么东西负责包装成类抛出、传递的呢?JVM吗?
自己抛出异常是很简单的,使用
throw new XXXException();就可以显式地抛出异常,这个异常可以是Java的,也可以是自己定义的继承Throwable的子类。
大部分异常都是这样抛出的,即使是Java本身的lib也是如此。异常运行时的传递是由JVM去处理的,JVM会根据调用的堆栈由下往上传递。异常编译时的传递是通过在方法中声明抛出的异常来传递的:throws XXXException.意思是告知其他调用者调用该方法可能会抛出异常。
至于是否需要捕获,就得看异常是check Exception还是uncheck Exception,引用Java中的定义:
其中RuntimeException + Error 和其子类都是属于 uncheck
exception
Exception类中除了 RuntimeException之外的类 都是属于 check
exception
uncheck exception表明调用方无需捕获处理该异常,一般是与运行时无法的错误,可能是调用方传递参数的问题,也有可能是虚拟机的问题,反正开发者不应该关注的异常。
check exception表明调用方必须捕获并处理该异常,一般是与运行时有关的错误,例如IO未准备好,文件不存在等,需要开发者关注的异常。
如果不想处理check exception,也可以在自己的方法里直接声明抛出异常throws XXXException即可,但不建议这样做,具体原因参考网上对异常的处理机制吧。
java包装类问题 出现空点错误NullPointerExceptiom
这个错误是出现在:
d[i][j] = sd;
这一行,原因是因为你在定义d时,规定了d有3层,但是每一层有多少个元素却没有规定,但你在这里取出第i层第j个元素,所以就会出现空指针异常(原因在j上)。
这里,相信你是想把每层的元素个数在后面定义,所以提供一个修改方案:
在第九行前面(即for(int j = 0; j ss.length;j++) 那一行前)加上:
d[i] = new double[ss.length];
就可以得出你想要的结果。
完整代码:
public static void main(String[] args) {
double[][] d = new double[3][4];
String st = "1,2;3,4,5;6,7,8";
String[] s = st.split(";");
for (int i = 0; i s.length; i++) {
String[] ss = s[i].split(",");
d[i] = new double[ss.length]; //*这里就是添加的代码
for (int j = 0; j ss.length; j++) {
double sd = Double.parseDouble(ss[j]);
d[i][j] = sd;
System.out.println("d[" + i + "," + j + "]" + " " + d[i][j]);
}
}
}
关于java异常包装和java异常统一处理 封装的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-27,除非注明,否则均为
原创文章,转载请注明出处。