Java的異常處理

1、示例一

// try-catch處理異常

public class Error {

	public static void main(String[] args) {
		
		int num1=34,num2=0;
		
		//使用try包裹住會產生異常的代碼段
		
		try{
		
			System.out.println(num1/num2);
			
		}
		
		//使用catch去處理對應的異常
		
		catch(ArithmeticException error){
		
		//處理方法
		
			System.err.println("運算錯誤,除數不能爲0!");
			
		}
		
		System.out.println("程序運行結束!");
		
	}
}

結果驗證:

運算錯誤,除數不能爲0!

程序運行結束!

2、示例二

import java.util.InputMismatchException;

import java.util.Scanner;
 
public class Error {
 
    public static void main(String[] args) {
    	
        Scanner input = new Scanner(System.in);
        
        System.out.println("請輸入第一個數字:");
        
        //使用try包裹住會產生異常的代碼段
        
        try{
            int num1=input.nextInt();
            
            System.out.println("請輸入第二個數字:");
            
            int num2=input.nextInt();
            
            System.out.println(num1/num2);
        }
        
        //使用catch去處理對應的異常
        
        catch(ArithmeticException error1){
        	
            //處理方法
        	
            System.err.println("運算錯誤,除數不能爲0!");
            
        }catch(InputMismatchException error2){
        	
            System.err.println("請輸入正確的數字!");
        }
        
        System.out.println("程序運行結束!");
         
    }
}

結果驗證:

結果一:

請輸入第一個數字:

123

請輸入第二個數字:

123

1

程序運行結束!


結果二:

請輸入第一個數字:

123

請輸入第二個數字:

b

請輸入正確的數字!

程序運行結束


結果三:

請輸入第一個數字:

123

請輸入第二個數字:

0

運算錯誤,除數不能爲0!

程序運行結束!


3、示例三

// 用戶輸入字符串轉整型

3.1

public class Error {
		
		String str;
		
		public Error(String str) {
			
			this.str = str;
		}

			public  String Transform(){
				try{
					
					int num = Integer.parseInt(str);
					
				}catch(NumberFormatException num){
					
					System.out.println("字符串轉整型,請輸入正確的數字:");
					
				}catch(Exception e){
					
				}
				return str;
		}		
}


// 編寫測試類,調用數據類型轉換方法,分別傳遞參數“Good!”、20

public class ErrorDemo {
	
	public static void main(String[] args) {
		
		Error er = new Error("Good!");
		
		er.Transform();
		
		System.out.println(er.str);

	}

}


字符串轉整型,請輸入正確的數字:

Good!

3.2

public class Error {
         
        int num = 0;
         
        public Error() {
            
          
        }
        
        public Error(int num) {
             
            this.num = num;
        }
 
        public  int TransformtoInt(String str){
              
        	try{
                     
                 int num1 = Integer.parseInt(str);
                     
                }catch(NumberFormatException num){
                     
                    System.err.println("字符串轉整型,請輸入正確的數字:");
                     
                }catch(Exception error){
                     
                	error.printStackTrace();
                	
                }
        return num;
        }      
}


import java.util.Scanner;

public class ErrorDemo {
     
    public static void main(String[] args) {
   
    	Scanner input = new Scanner(System.in);
        
    	System.out.println("請輸入一個數字:");
    	
    	String str = input.next();
    	
    	Error toInt = new Error();
    	
        toInt.TransformtoInt(str);
         
        System.out.println(str);
 
    }
 
}

驗證:


請輸入一個數字:

123

123


請輸入一個數字:

abc

字符串轉整型,請輸入正確的數字:

abc


4、示例四  

//throws、throw拋出異常

public class Error {
         
    String sex ;
 
    public Error() {
       
    }
 
    public String getSex() {
    	
        return sex;
        
    }
 
    public void setSex(String sex) throws Exception {
         
            if(sex.equals("男")|sex.equals("女")){
            	
                this.sex = sex;
                
            }else{
         
                throw new Exception("性別必須爲男或者女!");
            }              
    }          
}


public class ErrorDemo {
 
     
    public static void main(String[] args) {
     
        Error er = new Error();
        
        try{
        	
            er.setSex("熊");
            
        }catch(Exception error){
        	
            error.printStackTrace();
        }
        
        System.out.println("程序結束");
 
    }
 
}

java.lang.Exception: 性別必須爲男或者女!

at Error.setSex(Error.java:22)

at ErrorDemo.main(ErrorDemo.java:9)

程序結束


5、

自定義異常

// 創建Excption子類繼承Excption父類

//創建類

public class Error {
         
    String sex ;
 
    public Error() {
       
    }
 
    public String getSex() {
    	
        return sex;
        
    }
 
    public void setSex(String sex) throws Exception {
         
            if(sex.equals("男")|sex.equals("女")){
            	
                this.sex = sex;
                
            }else{
         
                throw new ExceptionDemo("性別必須爲男或者女!");
            }              
    }          
}


//創建ExceptionDemo子類

public class ExceptionDemo extends Exception {

	public ExceptionDemo() {
		super();
		
	}

	public ExceptionDemo(String message) {
		super(message);
		
	}
	
}



//創建測試類


import java.util.Scanner;

public class ErrorDemo {
 
     
    public static void main(String[] args) {
     
        Error er = new Error();
        
        try{
        	
        	Scanner next = new Scanner(System.in);
        	
        	System.out.println("請輸入性別:");
        	
            er.setSex(next.next());
            
        }catch(Exception error){
        	
            error.printStackTrace();
        }
        
        System.out.println("程序結束!");
 
    }
 
}

結果驗證:

請輸入性別:

程序結束!


請輸入性別:

nan

ExceptionDemo: 性別必須爲男或者女!

at Error.setSex(Error.java:23)

at ErrorDemo.main(ErrorDemo.java:10)

程序結束!




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章