package test;
import java.util.*;
import javax.swing.*;
class testMy extends Exception{ //自定义异常类
private int E;
public testMy (){ //构造方法
System.out.println(" 请检查异常! ");
}
static void m()throws testMy{ //处理异常方法
System.out.println(" 数据不正确! ");
}
}
public class TEST { //主类
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int a[]=new int[5]; //定义一个5个长度的数组
for(int i=0;i<5;i++)
a[i]=in.nextInt(); //输入5个长度的数组
System.out.println();
for(int i=0;i<6;i++){
try{ //i=6时会异常
System.out.print(a[i]+" ");
}
catch(testMy e){ //用继承异常类?为什么提示不能抛出?
// System.out.print("数组输出越界了!");
System.out.print("异常了!");
}
}
System.out.println();
}
}
为什么catch(testMy e) 这个不能抛出? 我有继承class testMy extends Exception啊? 求解答!
java继承异常类不能抛出???
答案:3 悬赏:0 手机版
解决时间 2021-02-15 11:04
- 提问者网友:树红树绿
- 2021-02-14 16:15
最佳答案
- 五星知识达人网友:独钓一江月
- 2021-02-14 17:02
public class ExceptionDemo {
public static void main(String[] args) {
try {
System.out.println(divide(10, 0));
} catch (DivisionByZeroException e) {
e.printStackTrace();
}
}
public static int divide(int a, int b) throws DivisionByZeroException {
if (b != 0) {
return a / b;
} else {
throw new DivisionByZeroException("can't divide zero");
}
}
}
class DivisionByZeroException extends Exception {
public DivisionByZeroException(String message) {
super(message);
}
}上面是一个异常系统的简单的例子,抛出用Throw 捕获用Catch
public static void main(String[] args) {
try {
System.out.println(divide(10, 0));
} catch (DivisionByZeroException e) {
e.printStackTrace();
}
}
public static int divide(int a, int b) throws DivisionByZeroException {
if (b != 0) {
return a / b;
} else {
throw new DivisionByZeroException("can't divide zero");
}
}
}
class DivisionByZeroException extends Exception {
public DivisionByZeroException(String message) {
super(message);
}
}上面是一个异常系统的简单的例子,抛出用Throw 捕获用Catch
全部回答
- 1楼网友:人间朝暮
- 2021-02-14 19:36
不可以,因为不能抛出新的异常,只能抛负累以下的
- 2楼网友:等灯
- 2021-02-14 18:35
try块抛出的异常对象必须是对应catch括号里异常类或其子类的实例。你例子中抛出的数组下标越界异常对象不是testMy类的对象,也不是子类对象。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯