异常
NumberFormatException,ArrayIndexOutOfBoundsException,ClassCastException,NullPointerException 不需要捕获,因为是UnCheckedException,逻辑上的异常;写程序时理清逻辑很重要
CheckedException
用try-catch捕获异常,需要注意的是在执行try-catch语句后要i-1
在可能出现异常的地方用上try-catch,使程序更加健壮
Integer.parsetInt
源代码Integer.parsetInt
一开始就有大量的抛出异常的代码,这种做法有什么好处?可以直接看出来异常原因,方便排错
要说明哪里抛出了什么异常,并解释为什么会出现这个异常
可以知道哪里出了错,节省排错时间,比单纯的返回错误值直观多了
不用使用throws;使用throws比写try-catch方便
子类异常要在父类异常前面
catch块中的异常不能有继承关系
byte[] content = null; FileInputStream fis = new FileInputStream("testfis.txt"); int bytesAvailabe = fis.available();//获得该文件可用的字节数 if(bytesAvailabe>0){ content = new byte[bytesAvailabe];//创建可容纳文件大小的数组 fis.read(content);//将文件内容读入数组 } System.out.println(Arrays.toString(content));//打印数组内容
找不到文件xxx,请重新输入文件名
,然后尝试重新打开。 如果是其他异常则提示打开或读取文件失败!
。finally
关闭文件。无论上面的代码是否产生异常,总要提示关闭文件ing。如果关闭文件失败,提示关闭文件失败!catch (NumberFormatException e) {
System.out.println("number format exception");
System.out.println(e);
} catch (IllegalArgumentException e) {
System.out.println("illegal argument exception");
System.out.println(e);
} catch (Exception e) {
System.out.println("other exception");
System.out.println(e);
}
6-2
代码,要将什么样操作放在finally块?为什么?使用finally关闭资源需要注意一些什么?放释放资源的代码,finally中的代码一定会执行;在finally内部写try-catch
try-with-resources
来改写上述代码实现自动关闭资源。简述这种方法有何好处?public Integer push(Integer item) throws FullStackException {
if(item==null) {
return null;
}
if(top==capacity){
FullStackException e=new FullStackException();
throw e;
}
arrStack[top]=item;
top+=1;
return item;
}
public Integer pop() throws EmptyStackException {
if(top==0){
EmptyStackException e=new EmptyStackException();
throw e;
}else{
int a= arrStack[top-1];
top=top-1;
return a;}
}
public Integer peek() throws EmptyStackException {
if(top==0){
EmptyStackException e=new EmptyStackException();
throw e;
}else
return arrStack[top-1];
}
好处:调用了close函数,确保资源会关闭,
原文:http://www.cnblogs.com/wdy201621123004/p/7896394.html