异常是指当程序中某些地方出错时创建的一种特殊的运行时错误对象。Java创建异常对象后,就发送给Java程序,即抛出异常(throwing an exception)。程序捕捉到这个异常后,可以编写相应的异常处理代码进行处理。使用异常处理可以使得程序更加健壮,有助于调试和后期维护。
Java异常通常在调用某些方法不一定完全成功时抛出,针对抛出的异常程序需要给出相应的处理,这称为异常处理。异常处理分为三个部分:捕捉异常、程序流程的跳转和异常处理语句块。
当一个异常被抛出时,程序中有专门的语句来接收这个被抛出的异常对象,这个过程就是捕捉异常;当一个异常类的对象被捕捉或接收后,用户程序就会发生流程跳转,系统中止程序运行,跳转到异常处理语句的执行,或者直接跳出系统,回到操作系统状态下。在Java语言中,try语句用来启动Java的异常处理机制,通常是可能抛出异常的语句的调用;而catch语句进行捕捉和处理异常,有时添加finally语句块,finally中的语句是正常执行或者处理异常之后必须执行的语句。语句格式如下:
try
{
语句块;
}
catch(异常类 异常类参数名)
{
异常处理语句块;
}
finally
{
try或者catch语句完毕后必须执行的语句(通常用于关闭文件流对象或者数据库对象等);
}
1. 直接抛出异常
例如:
public void myMethod()
{
try
{
urlName = new URL("http://www.sina.com.cn");
getAppletContext().showDocument(urlName,"right");
}
catch(MalformedURLException e)
{
System.out.println(e.getMessage());
}
}
try部分试图打开一个网址http://www.sina.com.cn,如果不成功,比如网址输入错误,那么引发异常程序忽略try中的下一行代码,直接跳到catch块中执行语句System.out.println(e.getMessage()),打印出引发的异常的错误信息描述。其中MalformedURLException说明引发的异常可能是URL网址输入错误类。
2. 间接抛出异常
例如:
public void myMethod() throws MalformedURLException
{
urlName = new URL("http://www.sina.com.cn");
getAppletContext().showDocument(urlName,"right");
}
在方法后面直接抛出
3. 综合方法
例如:
public void myMethod() throws MalformedURLException
{
try
{
urlName = new URL("http://www.sina.com.cn");
getAppletContext().showDocument(urlName,"right");
}
catch(MalformedURLException e)
{
System.out.println(e.getMessage());
}
}
7.1.4 多异常的处理
多异常的处理使用多个catch来捕捉不同类的异常,Java中对catch块的数量没有限制。格式如下:
Try
{
...
}
catch(异常类1 标识符)
{
...
}
catch(异常类2 标识符)
{
...
}
finally
{
...
}
Java异常通常在调用某些方法不一定完全成功时抛出,针对抛出的异常程序需要给出相应的处理,这称为异常处理。异常处理分为三个部分:捕捉异常、程序流程的跳转和异常处理语句块。
当一个异常被抛出时,程序中有专门的语句来接收这个被抛出的异常对象,这个过程就是捕捉异常;当一个异常类的对象被捕捉或接收后,用户程序就会发生流程跳转,系统中止程序运行,跳转到异常处理语句的执行,或者直接跳出系统,回到操作系统状态下。在Java语言中,try语句用来启动Java的异常处理机制,通常是可能抛出异常的语句的调用;而catch语句进行捕捉和处理异常,有时添加finally语句块,finally中的语句是正常执行或者处理异常之后必须执行的语句。语句格式如下:
try
{
语句块;
}
catch(异常类 异常类参数名)
{
异常处理语句块;
}
finally
{
try或者catch语句完毕后必须执行的语句(通常用于关闭文件流对象或者数据库对象等);
}
1. 直接抛出异常
例如:
public void myMethod()
{
try
{
urlName = new URL("http://www.sina.com.cn");
getAppletContext().showDocument(urlName,"right");
}
catch(MalformedURLException e)
{
System.out.println(e.getMessage());
}
}
try部分试图打开一个网址http://www.sina.com.cn,如果不成功,比如网址输入错误,那么引发异常程序忽略try中的下一行代码,直接跳到catch块中执行语句System.out.println(e.getMessage()),打印出引发的异常的错误信息描述。其中MalformedURLException说明引发的异常可能是URL网址输入错误类。
2. 间接抛出异常
例如:
public void myMethod() throws MalformedURLException
{
urlName = new URL("http://www.sina.com.cn");
getAppletContext().showDocument(urlName,"right");
}
在方法后面直接抛出
3. 综合方法
例如:
public void myMethod() throws MalformedURLException
{
try
{
urlName = new URL("http://www.sina.com.cn");
getAppletContext().showDocument(urlName,"right");
}
catch(MalformedURLException e)
{
System.out.println(e.getMessage());
}
}
7.1.4 多异常的处理
多异常的处理使用多个catch来捕捉不同类的异常,Java中对catch块的数量没有限制。格式如下:
Try
{
...
}
catch(异常类1 标识符)
{
...
}
catch(异常类2 标识符)
{
...
}
finally
{
...
}