//异常分为Error和Exception,它们都继承自Throwable,Error为错误类,是比较严重的,紧靠修改程序本身是不能执行的。
//Exception类成为异常类,表示程序本身可以处理的错误,在java开发中进行的异常处理都是Exception类及其子类。
//在Eception类的众多子类中有一个特殊的RuntimeException类,该类及其子类用于表示运行时异常,
//除了此类,Exception类下所有其他子类都用于表示编译时异常,本节主要针对Exception类及其子类进行讲解
//Throwable类中的常用方法
String getMessage()//返回此Throwable的详细消息字符串
void printStackTrace()//将此Throwable及其追踪输出至标准错误流
//异常捕获语法为
try{
//程序代码块
}catch(ExceptionType(Exception类及其子类) e){
//对ExceptionType的处理
}
//有时候我们希望有些语句无论程序是否发生异常都要执行,这时就可以在try。。。catch语句后加一个finally代码块
try{
//程序代码块
}catch(ExceptionType(Exception类及其子类) e){
//对ExceptionType的处理
}finally{
//完成必须做的事情
}
//如果在try。。。catch中执行了System.exit(0语句)表示退出当前虚拟机
/**
*如果调用一个别人写的方法,由于不知道这个方法是否会抛异常,针对这种情况,java允许在方法的
*后面使用throws关键字对外声明该方法可能发生的异常,语法格式如下
*
*/
修饰符 返回值类型 方法名(【参数1,参数2...】)throws ExceptionType1[,ExceptionType2...]{
//throws后面需要声明方法中发生异常的类型,将这种做法称为方法声明抛出一个异常,此时调用者在调用该方法时必须进行try。。。catch处理,调用该方法时,如果不知道如何处理声明抛出的异常,
//也可以使用throws关键字继续将异常抛出,但程序一旦发生异常,如果没有被处理,程序就会非正常终止
//自定义异常
public class test extends Exception{
public test(){
super();//调用Exception无参的构造方法
}
public test(String message){
super(message);//调用Exception有参的构造方法
}
}
public class Example{
public static void public static void main(String[] args) {
try{
int result=divide(4,-2);
System.out.println(result);
}catch(test e){
System.out.println(e.getMessage());
}
public static int divide(int x,int y) throws test{
if(y<0){
throws new test("被除数是负数");//throws关键字用于在方法声明中抛出异常的示例对象
}
int result=x/y;
return result;
}
//Exception类成为异常类,表示程序本身可以处理的错误,在java开发中进行的异常处理都是Exception类及其子类。
//在Eception类的众多子类中有一个特殊的RuntimeException类,该类及其子类用于表示运行时异常,
//除了此类,Exception类下所有其他子类都用于表示编译时异常,本节主要针对Exception类及其子类进行讲解
//Throwable类中的常用方法
String getMessage()//返回此Throwable的详细消息字符串
void printStackTrace()//将此Throwable及其追踪输出至标准错误流
//异常捕获语法为
try{
//程序代码块
}catch(ExceptionType(Exception类及其子类) e){
//对ExceptionType的处理
}
//有时候我们希望有些语句无论程序是否发生异常都要执行,这时就可以在try。。。catch语句后加一个finally代码块
try{
//程序代码块
}catch(ExceptionType(Exception类及其子类) e){
//对ExceptionType的处理
}finally{
//完成必须做的事情
}
//如果在try。。。catch中执行了System.exit(0语句)表示退出当前虚拟机
/**
*如果调用一个别人写的方法,由于不知道这个方法是否会抛异常,针对这种情况,java允许在方法的
*后面使用throws关键字对外声明该方法可能发生的异常,语法格式如下
*
*/
修饰符 返回值类型 方法名(【参数1,参数2...】)throws ExceptionType1[,ExceptionType2...]{
//throws后面需要声明方法中发生异常的类型,将这种做法称为方法声明抛出一个异常,此时调用者在调用该方法时必须进行try。。。catch处理,调用该方法时,如果不知道如何处理声明抛出的异常,
//也可以使用throws关键字继续将异常抛出,但程序一旦发生异常,如果没有被处理,程序就会非正常终止
//自定义异常
public class test extends Exception{
public test(){
super();//调用Exception无参的构造方法
}
public test(String message){
super(message);//调用Exception有参的构造方法
}
}
public class Example{
public static void public static void main(String[] args) {
try{
int result=divide(4,-2);
System.out.println(result);
}catch(test e){
System.out.println(e.getMessage());
}
public static int divide(int x,int y) throws test{
if(y<0){
throws new test("被除数是负数");//throws关键字用于在方法声明中抛出异常的示例对象
}
int result=x/y;
return result;
}