Demo
package tryDemo;
import java.io.*;
public class Demo {
public static void main(String[] args) {
/**
* 手动捕获异常必须用try .. catch 结构、
* 并且catch中包含指定抛出的异常类
*/
/*try {
int method = method(5);
System.out.println(method);
}catch (ArrayIndexException e){
System.out.println(e.getMessage());
}*/
method1();
}
//跑抛出异常 注意:这里是 throws
public static int method(int index) throws ArrayIndexException
{
int[] ar = {5,9,3,7};
//判断索引是否存在数组中
if (index < ar.length){
return ar[index];
}else{
//捕获一个异常,并且手动抛出 注意:这里是 throw
throw new ArrayIndexException("指定的数组索引不存在");
}
}
/**
* 文件异常 处理
* 文件的一些操作需要抛出IOException异常
* 为了简化文件操作的异常处理,有新的处理方式
*/
public static void method1()
{
//将资源定义在 try() 里面
try(InputStreamReader isr = new InputStreamReader(new FileInputStream("P:\\demo\\bbbbbb.txt"));){
//读取文件
char[] chs = new char[1024];
int i;
while ((i = isr.read(chs)) != -1){
System.out.println(new String(chs,0,i));
}
}catch (IOException e){
System.out.println(e);
}
}
}
自定义异常类
package tryDemo;
/**
* 自定义数组索引异常类
* 异常类定义:
* 必须继承 Exception 异常基类
* 并且实现带参构造方法
* 使用构造方法将异常信息传递到super类
*/
public class ArrayIndexException extends Exception{
public ArrayIndexException(){
}
//message 异常信息
public ArrayIndexException(String message) {
super("数组异常:" + message);
}
}