总之就是一个找错误的过程~

毕竟在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 }

 

 

posted on 2016-07-15 16:06  深天啦啦  阅读(263)  评论(0)    收藏  举报