JAVA API 异常处理
来源:互联网 发布:ifconfig修改mac地址 编辑:程序博客网 时间:2024/04/30 09:36
示例一:/** * java中的异常处理机制 * @author Administrator * */public class ExceptionDemo1 {public static void main(String[] args) {System.out.println("程序开始了");try{String str = null;/* * JVM在执行str.length()方法时发现str为null. * 于是创建一个NullPointerException的实例,并 * 将出错的描述信息封装进去,然后将异常抛出来。 * 这时JVM会查看下面这句代码有没有被一个try语句 * 包围,若没有,说明当前方法没有捕获这个异常的能 * 力,那么会将该异常抛出到方法外面,由于抛出到了 * main方法外面。JVM会将当前程序终止。 * 若有try包围,就会将该空指针异常实例传递给catch * 中的NullpointerException e,然后执行该catch的 * 内容用来解决异常。当解决后,程序得以正常继续的 * 执行。 */System.out.println("length:"+str.length());}catch(NullPointerException e){System.out.println("出现了一个空指针!");}System.out.println("程序结束了");}}
/** * 多个catch * @author Administrator * */public class ExceptionDemo2 {public static void main(String[] args) {System.out.println("程序开始了");try{String str = "aa";System.out.println("length:"+str.length());System.out.println(str.charAt(0));System.out.println(Integer.parseInt(str));}catch(NullPointerException e){System.out.println("出现了一个空指针");}catch(StringIndexOutOfBoundsException e){System.out.println("下标越界了");/* * 要有一个好习惯,在最后一个catch中去捕获最大的 * 异常。这样可以避免由于try中出现了一个没有捕获的 * 异常而导致程序中断 * * 在定义多个catch时要注意,若有父子类关系的异常 * 同时出现,那么父类异常要定义在子类异常的下面。 * */}catch(Exception e){System.out.println("反正就是出了个错!");}System.out.println("程序结束了");}}
/** * finally块 * finally可以直接跟在try语句块后面 * 或者最后一个catch之后 * finally块中的代码保证我们的程序无论出错与否,否会被 * 执行。 * * @author Administrator * */public class ExceptionDemo3 {public static void main(String[] args) {System.out.println("程序开始了");try {String str = "";System.out.println(str.length());System.out.println("!!!!");} catch (Exception e) {System.out.println("出错了!");} finally{System.out.println("finally的代码一定执行!");}System.out.println("程序结束了");}}
/** * finally面试题 * 1:final finally finalize分别是什么? * finalize是Object中定义的一个方法。该方法被jvm执行 * 当一个对象即将被GC回收前,会调用该方法。 * * 2:下面的例子 * * @author Administrator * */public class ExceptionDemo4 {public static void main(String[] args) {System.out.println(test("0")+","+test(null)+","+test(""));}public static int test(String str){try {return str.charAt(0)-'0';} catch (NullPointerException e) {return 1;} catch (Exception e){return 2;} finally{return 3;}}}
/** * throw的作用是主动抛出异常 * 通常两种情况会抛出异常: * 1:满足语法要求,但是不满足业务逻辑 * 2:出现异常的代码不应当负责处理该异常时(责任问题) * * @author Administrator * */public class ExceptionDemo5 {public static void main(String[] args){Person person = new Person();/* * 当我们调用一个声明有throws的方法时,编译器要求 * 我们必须在调用方法的这里处理该方法可能抛出的异常 * 处理手段有两种: * 1:自己try-catch捕获并处理 * 2:继续将该异常的抛出声明在当前方法上继续向外抛 * * 永远不要再main方法上声明throws! */try {person.setAge(10);} catch (IllegalAgeException e) {e.printStackTrace();}System.out.println("年龄是:"+person.getAge());}}
示例二:
/** * Exception中定义了一些常用方法 * @author Administrator * */public class ExceptionAPIDemo1 {public static void main(String[] args) {System.out.println("程序开始了");try {String str = "aa";System.out.println(Integer.parseInt(str));} catch (Exception e) {//输出错误堆栈(程序执行过程,一直到出错的位置)e.printStackTrace();//String getMessage() 获取错误的信息System.out.println(e.getMessage());}System.out.println("程序结束了");}}
/** * Exception的API 2 * @author Administrator * */public class ExceptionAPIDemo2 {public static void main(String[] args) {try {dosome("");} catch (Exception e) {//e.printStackTrace();System.out.println(e.getCause());}}public static void dosome(String str)throws Exception{try {System.out.println(str.charAt(0));} catch (NullPointerException e) {throw new Exception(e);} catch(StringIndexOutOfBoundsException e){throw new Exception(e);}}}示例三:
/** * 自定义异常 * 该异常表示一个年龄不合法的错误 * 通常我们在表示当前程序出现的一些业务逻辑错误时,可以 * 用自定义异常来描述。 * * @author Administrator * */public class IllegalAgeException extends Exception{private static final long serialVersionUID = 1L;public IllegalAgeException() {super();// TODO Auto-generated constructor stub}public IllegalAgeException(String message, Throwable cause) {super(message, cause);// TODO Auto-generated constructor stub}public IllegalAgeException(String message) {super(message);// TODO Auto-generated constructor stub}public IllegalAgeException(Throwable cause) {super(cause);// TODO Auto-generated constructor stub}}
0 0
- JAVA API 异常处理
- web api 异常处理
- java应用中,调用第三方api如何处理异常(系统异常、操作异常等等)
- Python/C API 异常处理
- 基础API与异常处理
- 【java】java异常处理
- java异常和异常处理
- Java 异常及异常处理
- java异常与异常处理
- Java异常处理-----自定义异常
- Java异常与异常处理
- java异常及异常处理
- Java 异常与异常处理
- Java异常与异常处理
- Java异常及异常处理
- Java异常处理--自定义异常
- JAVA异常之异常处理
- Java异常处理-----自行处理
- Linux inotify的功能及实现原理
- 贫血模型和充血模型
- Codeforces Round #145 (Div. 1, ACM-ICPC Rules)A
- 学习Java的第一天
- 递归算法实现全排列
- JAVA API 异常处理
- nyoj586||poj2456 二分+贪心
- 搭建Web项目
- Symmetric Tree
- 传感器
- 例题3-2
- doFilter如何使用
- HDU ACM 1286-找新朋友-欧拉phi函数
- 代码片1