总之就是一个找错误的过程~
毕竟在java中知道编译器反馈哪里错了,也是一个初学者很纠结的问题。
源码:
1 public class b { 2 3 public static void main(String[] args){ 4 5 /** 6 * 异常捕获 7 * try块存放可能发生的异常java语句 8 * catch块在try语句之后,然后用来激发被捕获的异常 9 * finally语句块最后执行,在try以任一种方式退出,都将执行 10 */ 11 try{ 12 String str = "lili"; 13 System.out.println(str+"年龄是:"); 14 int age = Integer.parseInt("20L");//数据类型转换 15 System.out.println(age); 16 }catch(Exception e){ //catch语句获取异常性质 17 e.printStackTrace(); 18 } 19 System.out.println("program over"); //输出信息 20 21 } 22 }
一般来说,java语句产生异常后,如果不做任何处理,程序将会终止。
由上可知:采用try-catch语句后,若try代码块发生异常,将执行catch代码块后的其他语句。
注:
Exception:catch代码块的变量类型,e是变量
getMessage(): 输出错误性质
toString():给出异常的类型与性质
printStackTrace():指出异常的类型、性质、栈层及出现在程序中的位置
finally语句块
无论程序中有无异常发生,并且之间的try-catch是否顺利完成,都将执行fially语句。
Java常见异常
| 异常类 | 说明 | 
| ClassCastException | 类型转换异常 | 
| ClassNotFoundException | 未找到相应类异常 | 
| ArithmeticException | 算术异常 | 
| ArrayIndexOutOfBoundsException | 数组下标越界异常 | 
| ArrayStoreException | 数组中包含不兼容的值抛出异常 | 
| SQLEXception | 操作数据库异常类 | 
| NullpointerException | 空指针异常 | 
| NoSuchFileException | 字段未找到异常 | 
| NoSuchMethodException | 方法未找到抛出异常 | 
| NumberFormatException | 字符串转换为数字抛出异常 | 
| NegativeArraySizeException | 数组元素个数为负数抛出的异常 | 
| StringIndexOutOfBoundsException | 字符串索引超出范围抛出的异常 | 
| IOException | 输入输出异常 | 
| IllegalAccessException | 不允许访问某类异常 | 
| InstantiationException | 当应用程序池试图访问使用Class类中的newInstrance()方法创建一个类的实例,而指定的类对象无法被实例化时,抛出该异常 | 
| EOFException | 文件结束异常 | 
| FileNotFoundException | 文件未找到异常 | 
自定义异常:
第一步:创建一个异常类继承至Exception
1 //class.MyException 2 public class MyException extends Exception{ 3 4 /** 5 * 自定义异常类 6 */ 7 String message; 8 public MyException (String ErrorMessage){ 9 message = ErrorMessage; 10 } 11 public String getMessage(){ 12 return message; 13 } 14 }
第二步,采用throw关键字抛出异常
1 //class.Captor 2 public class Captor { 3 //判断方法是否满足指定条件 4 static int quotient(int x,int y)throws MyException{ 5 if(y<0){ 6 throw new MyException("除数不能是负数"); 7 } 8 return x/y; 9 } 10 //主方法 11 public static void main(String args[]){ 12 try{ 13 int result = quotient(3,-1); 14 }catch(MyException e){ 15 System.out.println(e.getMessage()); 16 }catch(ArithmeticException e){ 17 System.out.println("除数不能为0"); 18 }catch (Exception e){ 19 System.out.println("程序发生了其它异常"); 20 } 21 } 22 }
 
                    
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号