Eclipse与异常处理
快捷键:Ctrl+d删除光标所在的这一行
Alt+/ 智能提示
异常处理
异常是阻止当前方法或作用域继续执行的问题,在程序中导致程序中断运行的一些指令。
try与catch关键字
try{
//有可能发生异常的代码段
}catch(异常类型 对象){
//异常的处理操作
}...
finally{
//异常的统一出口
}
例:
1 public class Practice14 { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 try{ 6 int num1=10; 7 int num2=0; 8 System.out.println(num1/num2); 9 }catch(ArithmeticException e){ 10 System.out.println("算术运算异常"); 11 } 12 finally{ 13 //最终:可以在这里做一些回收清理工作 14 System.out.println("finally语句不管会不会出现异常都会执行"); 15 } 16 } 17 18 }
throw与throws关键字:
throws关键字主要在方法的声明上使用,表示方法中不处理异常,而交给调用处处理。
throw关键字表示程序中手动抛出一个异常,因为异常从处理机制来看,所有的异常一旦产生之后,实际上抛出的就是一个异常类的实例化对象,那么此对象也可以由throw直接抛出。
1 public class Practice14 { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 //exTest(); 6 try { 7 int result=exTest2(10,2); 8 System.out.println(result); 9 } catch (Exception e) { 10 // TODO Auto-generated catch block 11 e.printStackTrace(); 12 } 13 } 14 private static int exTest2(int num1,int num2)throws Exception{ 15 if(num2==0)throw new ArithmeticException("除数不能为0"); 16 return num1/num2; 17 } 18 private static void exTest() { 19 try{ 20 int num1=10; 21 int num2=0; 22 System.out.println(num1/num2); 23 }catch(ArithmeticException e){ 24 System.out.println("算术运算异常"); 25 } 26 finally{ 27 //最终:可以在这里做一些回收清理工作 28 System.out.println("finally语句不管会不会出现异常都会执行"); 29 } 30 } 31 32 }
自定义异常:可以通过继承Exception类或已有的异常类的方式完成一个自定义异常类的操作。
例:
1 package com.vince; 2 /** 3 * 4 * @author Administrator 5 * 6 */ 7 public class MyException extends Exception{ 8 private String message; 9 public MyException(String message){ 10 super(message); 11 this.message =message; 12 } 13 @Override 14 public String toString() { 15 // TODO Auto-generated method stub 16 return message; 17 } 18 }
Eclipse之debug技术
debug:调试是程序员编码过程中找逻辑错误的一个很重要的手段
断点:遇到断点,暂挂,等候命令
debug as->Java Application
快捷键:F5:单步跳入。进入本行代码中执行
F6:单步跳过。执行本行代码,跳到下一行
F7:单步返回。跳出方法
F8:继续。执行到下一个断点,如果没有断点了,就执行到结束
Ctrl+R:执行光标所在的这一行