ctrl+r:搜索替换
alt+鼠标:列选取
自定义异常:
package com.hb2.异常.自定义异常2; public class myException extends RuntimeException{//编译时异常则继承Exception static final long serialVersionUID = -3387516993129948L;(数字可以改) public myException() { } public myException(String message) { super(message); } }
package com.hb2.异常.自定义异常2; //快捷键:ctrl+alt+t;快速try-catch public class Demo { public static void main(String[] args){ try { checkAge(155); } catch (myException e) { e.printStackTrace(); //System.out.println(e.getMessage); } } public static void checkAge(int age)//throws myException 运行时异常不需要抛出 { if( age<0 || age>150 ){//编译时异常,后重新定义成运行时异常 //抛出去一个异常对象给调用者 //throws 用在方法声明上,抛出方法内部异常 //throw 用在方法内部直接创建一个异常对象,并从此抛出 throw new myException(age+" is illegal!"); }else{h1 System.out.println("年龄合法,推荐商品购买"); } } }
异常常见:
数组索引越界异常:ArrayIndexOutOfBounds 空指针异常:NullPointerException 类型转换异常:ClassCastException 数字操作异常:ArithmeticException 数字转换异常:NumberFormatException
try-catch抛出异常:
try{ 可能出现异常的代码; }catch(异常类名 变量名){ 异常的处理代码 }finally{ 一定会执行的代码 }
throws和try-catch结合:
package com.hb2.异常; import java.text.SimpleDateFormat; import java.util.Date; public class Try_throw结合 {//先抛再处理,抛给上层集中处理,有利于寻找错误 public static void main(String[] args) { System.out.println("程序开始。。。"); try { parseTime("2011-1-1"); System.out.println("程序操作成功!"); } catch (Exception e) { e.printStackTrace(); System.out.println("程序操作失败"); } } public static void parseTime (String date) throws Exception{ SimpleDateFormat sdf = new SimpleDateFormat("y-M-d"); Date d = sdf.parse(date); System.out.println(d); } }