异常在代码中的两个作用

一.异常的作用:

作用一:异常是用来查询bug的关键参考信息。

作用二:异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况。

二.举例:

例1:

一个JavaBean类:

package com.itheima.a01MyExpection;

public class Student { 
  private String name; 
  private int age;

public Student() {
}
public Student(String name, int age) { ​ 
    this.name = name;
   ​ this.age = age;
 ​ }

*/** * * *获取 * * @return *name * / * public String** getName() { ​ return name; ​ }

*/** * * *设置 * * @param *name * / * public void setName(String** name) { ​ this.name = name; ​ }

*/** * * *获取 * * @return *age * **/ * public int getAge() { ​ return age; ​ }

*/** * * *设置 * * @param *age * **/ * public void setAge(int age) { ​ this.age = age; ​ }

public String toString() { ​ return "Student{name = " + name + ", age = " + age + "}"; ​ } }

出错原因:Student是引用数据类型,初始值为null。

其中只创建了数组对象,没创建数组元素对象。

故为空值null,无法调用方法。

正确的代码:


例2:

一个JavaBean类:

package com.itheima.a01MyExpection;

public class Student2 { 
private String name; 
private int age;

public Student2() { ​ }

public Student2(String str) { ​ String[] arr=str.split("-"); ​ this.name=arr[0]; ​ this.age=Integer.parseInt(arr[1]); ​ }

*/** * * *获取 * * @return *name * / * public String** getName() { ​ return name; ​ }

*/** * * *设置 * * @param *name * / * public void setName(String** name) { ​ this.name = name; ​ }

*/** * * *获取 * * @return *age * **/ * public int getAge() { ​ return age; ​ }

*/** * * *设置 * * @param *age * **/ * public void setAge(int age) { ​ this.age = age; ​ }

public String toString() { ​ return "Student2{name = " + name + ", age = " + age + "}"; ​ } }

错误原因在Student2类里:

正确代码如下:即用逗号分割即可

运行结果:

三.针对作用二:

测试类中:

Student类里:

结果:

这里有弊端,因为setAge这个方法并没有把结果告诉调用者,而是直接把结果打印在控制台。

原理图:

因此,可用异常解决:

Student类里:

测试类中:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值