Java异常
2015-07-28 10:10
399 查看
Java程序中出错有两种情况:
1. 出现异常Exception --- 合理逻辑,正确捕捉完成逻辑
2. 出现错误Error --- 虚拟机级别的错误,程序无法处理。一定要避免.
一、声明异常
当方法可能出现某些异常时,可在方法定义后面使用throws将可能的异常全部抛出(可抛出多个异常),如:
public void FileInputString(String name) throws FileNotFoundException{
}
二、异常处理
String str = "23sgvs4";
try{
int num = Integer.parseInt(str); //try中运行代码,检查可能出现的异常,若出现异常,后面剩余代码不执行
System.out.println(num);
}catch(NumberFormatException e){ //catch将出现的异常进行捕获,执行后面大括号中的代码
System.out.println("数字格式转换异常");
}finally{ //无论是否出现异常,finally中的代码都会强制执行
System.out.println("程序结束!");
}
注:finally{ }: 无论什么情况都会被强制执行.通常用于释放资源,比如说io流,数据库连接,垃圾回收.为的是节省系统资源,
内存不会太满,提高计算机的性能.
三、自定义异常
public class
MyException extends Exception{
public MyException(){
}
public MyException(String msg){
super(msg);
}
@Override
public String getMessage() {
// TODO Auto-generated method stub
System.out.println("My Exception");
return super.getMessage();
}
}
四、异常种类
1、Exception 异常层次结构的根类,继承自Throwable
2、RuntimeException 许多java.lang异常的基类
3、NullPointerException 空指针异常
4、ArrayIndexOutOfBoundException 数组下标越界异常
5、NumberFormatException 数字格式化异常
6、IOException IO异常的根类
7、ArithmeticException 算术错误异常
8、ClassNotFoundException 不能加载所需的类
9、IllegalArgumentException 非法参数异常
10、FileNotFoundException 找不到文件异常
11、EOFException 文件结束
12、InterruptedException 线程中断异常
。。。
五、throw与throws区别
throw是有手动引发异常
if(getWatterline() >= getWarning()+9){
throw new MyException("决提了");
}
throws是有指定方法引发异常
public void FileInputString(String name)throws FileNotFoundException
注:1、throw只能抛出一个异常,通常用于自定义异常;throws能抛出多个异常,可以是java.lang包下的所有异常类,
也可以是自定义类;
2、方法使用throws抛出异常时,其本身不处理,但是调用该方法的方法要进行处理try-catch,或是继续抛出,
不然程序会报错
1. 出现异常Exception --- 合理逻辑,正确捕捉完成逻辑
2. 出现错误Error --- 虚拟机级别的错误,程序无法处理。一定要避免.
一、声明异常
当方法可能出现某些异常时,可在方法定义后面使用throws将可能的异常全部抛出(可抛出多个异常),如:
public void FileInputString(String name) throws FileNotFoundException{
}
二、异常处理
String str = "23sgvs4";
try{
int num = Integer.parseInt(str); //try中运行代码,检查可能出现的异常,若出现异常,后面剩余代码不执行
System.out.println(num);
}catch(NumberFormatException e){ //catch将出现的异常进行捕获,执行后面大括号中的代码
System.out.println("数字格式转换异常");
}finally{ //无论是否出现异常,finally中的代码都会强制执行
System.out.println("程序结束!");
}
注:finally{ }: 无论什么情况都会被强制执行.通常用于释放资源,比如说io流,数据库连接,垃圾回收.为的是节省系统资源,
内存不会太满,提高计算机的性能.
三、自定义异常
public class
MyException extends Exception{
public MyException(){
}
public MyException(String msg){
super(msg);
}
@Override
public String getMessage() {
// TODO Auto-generated method stub
System.out.println("My Exception");
return super.getMessage();
}
}
四、异常种类
1、Exception 异常层次结构的根类,继承自Throwable
2、RuntimeException 许多java.lang异常的基类
3、NullPointerException 空指针异常
4、ArrayIndexOutOfBoundException 数组下标越界异常
5、NumberFormatException 数字格式化异常
6、IOException IO异常的根类
7、ArithmeticException 算术错误异常
8、ClassNotFoundException 不能加载所需的类
9、IllegalArgumentException 非法参数异常
10、FileNotFoundException 找不到文件异常
11、EOFException 文件结束
12、InterruptedException 线程中断异常
。。。
五、throw与throws区别
throw是有手动引发异常
if(getWatterline() >= getWarning()+9){
throw new MyException("决提了");
}
throws是有指定方法引发异常
public void FileInputString(String name)throws FileNotFoundException
注:1、throw只能抛出一个异常,通常用于自定义异常;throws能抛出多个异常,可以是java.lang包下的所有异常类,
也可以是自定义类;
2、方法使用throws抛出异常时,其本身不处理,但是调用该方法的方法要进行处理try-catch,或是继续抛出,
不然程序会报错
相关文章推荐
- Spring MVC学习-----------前言
- Spring MVC 中的 forward 和 redirect
- Java基础(一)妙用枚举类
- String知多少——Java特种兵上的例子
- (23) 深入理解Java:注解(Annotation)基本概念||自定义注解入门||及注解处理器
- Spring MVC 教程,快速入门,深入分析
- java+poi读取和存储excel表格内容
- Spring MVC+Mybatis+Maven+Velocity+Mysql
- eclipse 开发playframework
- java多线程
- java 判断三个字符串中是否有相等,去掉重复字符串输出
- javaweb-url /
- springmvc缓存
- 打开eclipse 异常弹出对话框 Subversion Native Library Not Available的解决
- iOS注释标记(参考javadoc)
- 简单的Java打字游戏
- [Java]对字符串中的每个单词个数进行统计
- java常用的23种设计模式《转》
- java playframework
- Java对数组的复制