error 不可以在程序中捕获。
终止程序:System.exit(int);
System.exit(0);//强行退出。正常的退出。
System.exit(-1); //非正常的退出。
throw主动的抛出异常。
抛出的异常只能是Exception和Exception的子类。
就是已检查的异常和runtime异常。
throws主动声明抛出异常。
throw是程序员主动在
程序中抛出的异常,而throws是告诉用户此处会抛出异常。
throw位于方法体内部。
super调用父类的构造方法。
编写自定义的异常 ,建议写里面的构造函数。
编写异常连的时候就需要在继承Exception里面的后两个方法。
runtimeExceptin 可以不处理。
运行时的异常:RuntimeException。
已检查异常:Checked Exception。
异常的体系结构:
ArithmeticException
AreayIndexOutofBoundsException。数组越界的异常。
NullPointerException 空指针的异常。
ClassNotFoundException
NumberFormatException。
InputMismatchException。
异常就是程序在运行过程中可能会发生的不正常的现象,异常有很多种,还有一个继承体系,最上面的是Throwable
最
常用的Exception和他的子类。
例子:
public class yichang {
private String name=" ";
private int age=0;
private String sex;
public void setSex(String sex)throws Exception//主动声明抛出异常,告诉用户会抛出异常。
{
if("男".equals(sex)||"女".equals(sex))
System.out.println("你输入的年龄是正确的");
this.sex=sex;//方法中设置形参。
}
else
{
throw new Exception("必须是男或者女的");//抛出新的异常。
}
}
public void print()
{
System.out.println("sex="+this.sex);
}
}
public class text {
public static void main(String[]args)
{
yichang yi=new yichang();
try
{
yi.setSex("男");//为方法中的形参传递参数。
yi.print();
}catch(Exception e){
e.printStackTrace();
}
}
}
你输入的年龄是正确的
sex=男
把yi.setSex("男");改为yi.setSex("hhh"); 那么打印为:
java.lang.Exception: 必须是男或者女的
at yichang.setSex(yichang.java:15)
at text.main(text.java:8)
异常的例子:
import java.util.Scanner;
public class zhengchu {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
try
{
System.out.println("请输入第一个数字");
int num1=sc.nextInt();
System.out.println("请输入第二个数字");
int num2=sc.nextInt();
int num3=num1/num2;
System.out.println("num3="+num3);
}catch(Exception e)
{
System.out.println("除数不能为0");
e.printStackTrace();
}
finally{
System.out.println("感谢使用本程序");
}
}
自定义的异常:
继承Throwable
继承Exception
继承RuntimeException
语法为:必须写下面的四个构
造函数。这是在继承Exception这个异常的时候所去重写的构造函数,当然还有Throwable RuntimeException和这两个异常,具体的看帮助
文档的这两个的构造方法。
Exception 这些代码在我们写程序的时候直接右击-到
源代码-从超类中生成构造函数,这样子方便。当然从帮助
文档中看就可以。
public myException(){
super();
}
public myException(String message){
super(message);
}
public myException(String message,
Throwable cause){
super(message,cause);
}
public myException(Throwable cause){
super(cause);
}
例子:
public class GenderException extends Exception{
public GenderException(){
super();
}
public GenderException(String message){
super(message);
}
public GenderException(String message,
Throwable cause){
super(message,cause);
}
public GenderException(Throwable cause){
super(cause);
}
}
publi