Java的异常和错误
java程序出现的错误可以根据性质分为错误和异常两类:
1. 错误
- 一般指运行时遇到的硬件或者操作系统的错误,如内存溢出、操作系统出错虚拟机出错等。
- Error类是错误类,由java虚拟机生成并抛给系统。
2.1 异常
- 一般指在硬件和操作系统正常的情况下程序遇到的运行错,如除数为0,操作数超出数据范围,要打开一个文件时文件不存在,网络中断等。
- Exception类是异常类,每一种错误对应Exception中的一个子类,是Java应用程序需要捕获和处理的异常对象。
public class Chapter7 {
public static void main(String[] args) {
int x=1,y=0;
System.out.println(x/y);
}
}
如ExceptionByZero类
异常处理
- Java捕获并处理异常的机制是try-catch-finally
- 如果异常出现在某个方法中,那么这个成员方法可以将异常用throws将异常扔出,即本方法不处理异常,调用该方法的方法处理异常(谁用谁处理)
- 如果Java中的异常处理类无法满足用户的需求,用户可以自己定义异常处理类来满足特点的需求
如:
package Textbook;
public class Chapter7Persons {
private String name; //姓名
private int age; //年龄
public Chapter7Persons(String name, int age) throws AgeException {
this.setName(name);
this.setAge(age);
}
public void setName(String name) {
if(name==null||name=="")
this.name = "姓名未知";
else
this.name=name;
}
public String getName() {
return name;
}
public void setAge(int age) throws AgeException {
if(age>=0&&age<160)
this.age = age;
else
throw new AgeException(""+age);
}
public int getAge() {
return age;
}
public String toString()
{
return getName()+","+getAge()+"岁";
}
public void print()
{
System.out.println(this.toString());
}
public static void main(String[] args) {
Chapter7Persons p1=null;
try {
p1=new Chapter7Persons("小李子",36);
p1.setAge(161);
}
catch(AgeException e)
{
e.printStackTrace();
}
finally
{
p1.print();
}
}
}