地位:
1. Java彻底地、完全地支持了异常机制。
2. 无处不在、必须掌握。
正常情况:传入一个数组,长度为N,则getMax能够正常运作得到最大值。
异常情况:传入一个数组,长度为0。。。如何处理?传统方法:使用if判断 。
异常处理机制
Java里的异常处理分为两个环节:
1. 底层函数抛出异常对象 throw
… getMax () throws Exception
{
Exception e = new Exception("…描述…");
throw e;
}
2. 上层调用时,监视代码、捕捉异常对象 try … catch …
try{
}catch(Exception e){
}
异常处理机制
try{}: 正常处理流程;
catch{}: 异常处理流程 (错误已发生,该怎么办?);
如果一切正常,则运行完try{}中的代码后,忽略catch{},继续运行后面的代码。
如果getMax()有异常发生时,则立即try{}中退出、并跳转到相应的catch{}中运行。
throw
throw语句用于抛出一个异常对象,该对象必须是Throwable的子类。
通常,我们使用Exception类,或者创建一个Exception的子类。
该类用于描述错误的具体信息。
throw语句的双重作用:
Exception e = new Exception("… 描述…");
throw e;
(1)抛出一个异常对象
运行截图如下:
1. Java彻底地、完全地支持了异常机制。
2. 无处不在、必须掌握。
正常情况:传入一个数组,长度为N,则getMax能够正常运作得到最大值。
异常情况:传入一个数组,长度为0。。。如何处理?传统方法:使用if判断 。
异常处理机制
Java里的异常处理分为两个环节:
1. 底层函数抛出异常对象 throw
… getMax () throws Exception
{
Exception e = new Exception("…描述…");
throw e;
}
2. 上层调用时,监视代码、捕捉异常对象 try … catch …
try{
}catch(Exception e){
}
异常处理机制
try{}: 正常处理流程;
catch{}: 异常处理流程 (错误已发生,该怎么办?);
如果一切正常,则运行完try{}中的代码后,忽略catch{},继续运行后面的代码。
如果getMax()有异常发生时,则立即try{}中退出、并跳转到相应的catch{}中运行。
throw
throw语句用于抛出一个异常对象,该对象必须是Throwable的子类。
通常,我们使用Exception类,或者创建一个Exception的子类。
该类用于描述错误的具体信息。
throw语句的双重作用:
Exception e = new Exception("… 描述…");
throw e;
(1)抛出一个异常对象
(2)退出当前函数
代码如下:
package my;
public class HelloWorld
{
public int getMax(int[] numbers) throws Exception{
if(numbers.length==0) {
Exception e=new Exception("长度不能为0");
throw e;
}
int max=numbers[0];
for(int i=1;i<numbers.length;i++) {
if(numbers[i]>max) {
max=numbers[i];
}
}
return max;
}
public static void main(String[] args)
{
HelloWorld t=new HelloWorld();
int[] date= new int[0];
try {
int max=t.getMax(date);
System.out.println("成功:result:"+max);
}
catch(Exception e) {
System.out.println("出错:"+e.getMessage());
}
}
}
运行截图如下: