标签:程序 rgs 结果 运行 代码 ati err ring demo
异常:就是程序在运行时出现不正常情况。
异常由来:问题也是现实生活中一个具体的事物,可通过java以类的形式进行描述。并封装成对象。
try{
需要被检测的代码;
}
catch(异常类 变量){
处理异常的代码;(处理方式)
}
//可选
finally{
一定会执行的语句;
}
class Demo {
int div(int a, int b)throws ArithmeticException//在功能上通过throws的关键字声明了该功能有可能会出现问题。
{
return a / b;
}
}
class ExceptionDemo {
public static void main(String[] args) {
Demo d = new Demo();
try {
int x = d.div(4, 0);
System.out.println("x=" + x);
} catch (ArithmeticException e)/ArithmeticException e = new ArithmeticException();
{
System.out.println("除零啦");
System.out.println(e.getMessage());
System.out.println(e.toString());// 异常名称:异常信息。
e.printStackTrace();//异常名称,异常信息,异常出现的位置。
}
System.out.println("over");
}
}
运行结果:
除零啦
/ by zero
java.lang.ArithmeticException: / by zero
java.lang.ArithmeticException: / by zero
at Demo.div(Test.java:54)
at Test.main(Test.java:66)
over
当出现的特有问题未被java所描述并封装对象。可以按照java对问题封装的思想,将特有的问题进行自定义的异常封装。
因为父类中已经把异常信息的操作都完成了。所以子类只要在构造时,将异常信息传递给父类通过super语句。
那么就可以直接通过getMessage方法获取自定义的异常信息。
class FuShuException extends Exception //getMessage();
{
private int value;
FuShuException(String msg, int value) {
super(msg);
this.value = value;
}
public int getValue() {
return value;
}
}
class Demo {
int div(int a, int b) throws FuShuException {
if (b < 0) {
throw new FuShuException("出现了除数是负数的情况------ / by fushu", b);//手动通过throw关键字抛出一个自定义异常对象。
}
return a / b;
}
}
class Test {
public static void main(String[] args) {
Demo d = new Demo();
try {
int x = d.div(4, -9);
System.out.println("x=" + x);
} catch (FuShuException e) {
System.out.println(e.toString());
System.out.println("错误的负数是:" + e.getValue());
}
System.out.println("over");
}
}
运行结果:
FuShuException: 出现了除数是负数的情况------ / by fushu
错误的负数是:-9
over
标签:程序 rgs 结果 运行 代码 ati err ring demo
原文地址:https://www.cnblogs.com/hen-java/p/12601831.html