java中的异常捕获语句
Try{
//可能发生运行错误的代码;
}
catch(异常类型 异常对象引用){
用于处理异常的代码;
}
finally{
//用于“善后”的代码;
}
把可能会发生错误的代码放进try语句块中。当程序检测到出现一个错误时会抛出一个异常对象,异常处理代码会捕获并处理这个错误。catch语句块中的代码用于处理错误。当异常发生时,程序控制流程由try语句跳转到catch语句块。
import java.io.IOException; import java.util.Scanner; //查找list[]中的最大值 public class danyuanceshi{ public static void main(String[] args){ // TODO Auto-generated method stub @SuppressWarnings("resource") Scanner input=new Scanner(System.in); System.out.println("请输入数组的长度:"); int N=input.nextInt(); int list[]=new int[N]; System.out.println("请输入一个整数数组:"); for(int i=0;i<N;i++) { list[i]=input.nextInt(); } int length=list.length; int max=Largest(list,length); System.out.println("最大值为:"+max); } public static int Largest(int list[],int length) { try{ if(list==null||list.length==0){ throw new Null("不能为空"); } }catch(Null e){ System.out.println("不能为空"); System.exit(0); } int i; int max=list[0]; for(i=0;i<=(length-1);i++) { if(list[i]>max) { max=list[i]; } } return max; } } class Null extends IOException{ public Null(String args){ super(args); } }
问题:出现了一些逻辑问题,先前自己定义了数组长度,使后面的if语句无法判断,应自己输入数组长度。使用System.exit(0)来抛出异常之后结束整个程序。