java学习笔记-EXCEPTION
来源:互联网 发布:数据库的审计类型有 编辑:程序博客网 时间:2024/05/21 21:00
**int转换成String,在后面加一个空串""。
String转换成int, Interger.parseint();
Interger和Double类之间不能扩展,因为它们之间不是继承关系,而是兄弟关系。
**一个类的构造方法不可见的时候,有两种可能情况:
1.该类里面的方法全是静态的,用方法时根本不需要对象;2.该类提供了一个静态方法返回对象。
1.该类里面的方法全是静态的,用方法时根本不需要对象;2.该类提供了一个静态方法返回对象。
Exception
1 Throwable(运行时可能碰到的任何问题的总称,是Java的一个类。)
---->Error (非常严重的错误,系统不要求程序员处理,也处理不了)
---->Exception(从代码的角度是程序员可以处理的问题,也就是“异常或者例外”)
异常是运行时概念
---> UncheckedExcepiton(RuntimeException)
程序员小心谨慎完全可以避免的异常,系统不要求程序员处理(可以不管),即编写代码时不用刻意去考虑,运行时如果出现此种异常,系统会处理(即系统之前就已经写好了这些异常的处理,如果发生则系统自己处理),运行终止后再由程序员调试更改代码。在Java API中为RuntimeException的子类的异常都是未检查异常。
例如: 3/0,数组下标越界,NullPointerException(空指针异常),类型转换异常
---------------------------------------------------------------------------------
1 Throwable(运行时可能碰到的任何问题的总称,是Java的一个类。)
---->Error (非常严重的错误,系统不要求程序员处理,也处理不了)
---->Exception(从代码的角度是程序员可以处理的问题,也就是“异常或者例外”)
异常是运行时概念
---> UncheckedExcepiton(RuntimeException)
程序员小心谨慎完全可以避免的异常,系统不要求程序员处理(可以不管),即编写代码时不用刻意去考虑,运行时如果出现此种异常,系统会处理(即系统之前就已经写好了这些异常的处理,如果发生则系统自己处理),运行终止后再由程序员调试更改代码。在Java API中为RuntimeException的子类的异常都是未检查异常。
例如: 3/0,数组下标越界,NullPointerException(空指针异常),类型转换异常
---------------------------------------------------------------------------------
--->CheckedException(已检查异常)
系统要求必须处理 。
2 异常的处理
1.声明抛弃异常(消极的处理):
throws :“抛弃”,写在方法的声明上,后面跟要抛弃的异常类型。
系统要求必须处理 。
2 异常的处理
1.声明抛弃异常(消极的处理):
throws :“抛弃”,写在方法的声明上,后面跟要抛弃的异常类型。
例如:public void method(···) throws ArithmeticException{····}
异常产生时,责任可能并不在当前方法,向外抛弃可以让异常找到一个最佳的位置来处理,所以才用throws来抛弃异常。
用throws向外抛弃异常过程中可以对异常类型进行扩展,但是不能缩小 。
当代码出现异常时,代码不会向下执行,虚拟机(JVM)会将异常封装成相应的异常类的对象向外抛出。
throw: “抛出”,出现在方法的实现里,用来抛出异常对象,throw后面跟异常对象。
@@@@ 关于方法的返回值的两种情况:
@@ 1. 正常运行,要求方法必须返回定义的返回类型的值。
@@ 2. 非正常结束(出异常),方法返回的是异常对象。
方法覆盖: 名相同,参数相同,返回类型相同。应该注意:
异常产生时,责任可能并不在当前方法,向外抛弃可以让异常找到一个最佳的位置来处理,所以才用throws来抛弃异常。
用throws向外抛弃异常过程中可以对异常类型进行扩展,但是不能缩小 。
当代码出现异常时,代码不会向下执行,虚拟机(JVM)会将异常封装成相应的异常类的对象向外抛出。
throw: “抛出”,出现在方法的实现里,用来抛出异常对象,throw后面跟异常对象。
@@@@ 关于方法的返回值的两种情况:
@@ 1. 正常运行,要求方法必须返回定义的返回类型的值。
@@ 2. 非正常结束(出异常),方法返回的是异常对象。
方法覆盖: 名相同,参数相同,返回类型相同。应该注意:
1. 方法的访问权限不能更小。
2.方法抛弃的异常不能更多,子类不能比父类抛出更多的异常!!!
2. try--catch (积极的处理):
一个try语句后可以跟多个catch{};catch时子类先写,父类
后写,否则如果父类写到前面,则所有的异常都被当作父类异常处理了,后面的对于具体的异常类型的处理则无法执行了。如果没有父子关系,先后无所谓。
@@@@@@@@@@@@;
try{
//可能会产生异常的代码
1 **********;
2 &&&&&&&&&;
3%%%%%%%%;
}catch(Exception1 e1){
4 ######## ;
} catch(Exception2 e2){
5 $$$$$$$$$$$$$$;
}finally{
//不管有没有异常出现都要执行的代码
// 当try catch 里出现了System.exit(0),finally 将不再执行。
6 !!!!!!!!!!!!;
}
7 ^^^^^^^^^^^^^;
第一种:如果1,2,3没产生任何异常,3执行后直接执行6,然后是7
第二种:如果2产生异常 ,3不会被执行,直接跳出try{},
匹配第一个catch,和catch里定义的类型一致,执行4,
随后执行6,7;如果不一致,再匹配catch2,相同执行5,
随后执行6,7;如果和 catch2不同,语法错误。
2.方法抛弃的异常不能更多,子类不能比父类抛出更多的异常!!!
2. try--catch (积极的处理):
一个try语句后可以跟多个catch{};catch时子类先写,父类
后写,否则如果父类写到前面,则所有的异常都被当作父类异常处理了,后面的对于具体的异常类型的处理则无法执行了。如果没有父子关系,先后无所谓。
@@@@@@@@@@@@;
try{
//可能会产生异常的代码
1 **********;
2 &&&&&&&&&;
3%%%%%%%%;
}catch(Exception1 e1){
4 ######## ;
} catch(Exception2 e2){
5 $$$$$$$$$$$$$$;
}finally{
//不管有没有异常出现都要执行的代码
// 当try catch 里出现了System.exit(0),finally 将不再执行。
6 !!!!!!!!!!!!;
}
7 ^^^^^^^^^^^^^;
第一种:如果1,2,3没产生任何异常,3执行后直接执行6,然后是7
第二种:如果2产生异常 ,3不会被执行,直接跳出try{},
匹配第一个catch,和catch里定义的类型一致,执行4,
随后执行6,7;如果不一致,再匹配catch2,相同执行5,
随后执行6,7;如果和 catch2不同,语法错误。
try{}catch(Exception e){}中,catch{}中一般不会写过多的代码,甚至是一行也不写,写也就是写一句“e.printStackTrace();”。
打印异常堆栈信息:try{
}
catch(Exception e) {
e.printStackTrace();//打印异常堆栈信息
}
例如:
1 public class TestFinally{
2 public static void main(String[] args){
3 System.out.println(getNum(1));
4 System.out.println(getNum(0));
5 System.out.println(getNum(2));
6 }
7 public static int getNum(int num){ //第一次传入1时,执行完第9行,因为下一句是return语
8 try{ //句,而finally无论是否有异常都要执行的,所以程序转到
9 int k=2/num; //第14行,因为第14行没有返回,所以最后又执行第10句
10 return 1; //最后的返回值是1,同理,传入0时,返回0,传入2时,
11 }catch(Exception e){ //返回2。
12 return 0; ***//只有当第10句为System.exit(0);时,才不转去执行
13 }finally{ //finally语句,直接结束程序。
14 if(num==2) return 2;
15 }
16 }
17 }
3. try catch finally
try--------catch
try--------finally,有些时候有些事情无论有没有异常都要处理,而异常又不在此处处理,
2 public static void main(String[] args){
3 System.out.println(getNum(1));
4 System.out.println(getNum(0));
5 System.out.println(getNum(2));
6 }
7 public static int getNum(int num){ //第一次传入1时,执行完第9行,因为下一句是return语
8 try{ //句,而finally无论是否有异常都要执行的,所以程序转到
9 int k=2/num; //第14行,因为第14行没有返回,所以最后又执行第10句
10 return 1; //最后的返回值是1,同理,传入0时,返回0,传入2时,
11 }catch(Exception e){ //返回2。
12 return 0; ***//只有当第10句为System.exit(0);时,才不转去执行
13 }finally{ //finally语句,直接结束程序。
14 if(num==2) return 2;
15 }
16 }
17 }
3. try catch finally
try--------catch
try--------finally,有些时候有些事情无论有没有异常都要处理,而异常又不在此处处理,
即用try{}finally{}。此时不是为了处理异常,而是有些事情必须要处理。
笔试的常考题目:区分以下的字符串的含义:
1) throws throw Throwable
2) final finalize() finally
3) String StringBuffer
4 自定义异常类型(业务异常)
class MyException extends Exception{
public MyException(String str){
super(str);
}
}
1) throws throw Throwable
2) final finalize() finally
3) String StringBuffer
4 自定义异常类型(业务异常)
class MyException extends Exception{
public MyException(String str){
super(str);
}
}
- java学习笔记-EXCEPTION
- java学习笔记--Exception
- Java学习笔记之Exception
- Java 学习笔记 (4) -异常 Exception
- Java学习笔记26 异常Exception
- boost exception 学习笔记
- php学习笔记--Exception
- Java异常(Exception)小例子&知识点【Java学习笔记】
- Java菜鸟学习笔记--Exception篇(一):异常简介
- Java学习笔记:Exception:Operation not allowed after ResultSet closed
- Java Exception学习
- JAVA学习--异常Exception
- Java学习-异常(Exception)
- java 自定义Exception学习
- Java 复习笔记 异常Exception
- 【Java学习笔记】6:Java中的包(package)与Exception类异常处理
- java个人学习笔记14(Error+Exception+try_catch_finally+throw+throws)
- JAVA学习笔记25——异常机制1:Exception简介+异常处理的try_catch_finally方法
- flex 学习总结
- 关于inflate,获取布局xml
- Flex 3 学习总结
- 【zz】一个简单的同步算法
- proquest的采集程序demo测试截图
- java学习笔记-EXCEPTION
- JAVA学习笔记--集合
- Qt实验一
- java学习笔记--Thread
- java学习笔记--工厂模式、实体关系
- java学习笔记--字符流、对象序列化
- 更改ubuntu的默认shell
- 世界上最复杂的邮件!
- 进度报告