小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Java異常解讀以及通過業(yè)務(wù)邏輯解決異常的方式

 尚學(xué)堂明輝 2017-11-21

1、異常體系結(jié)構(gòu):


 

1.1:定義:

程序在運(yùn)行期間發(fā)生的不正常的情況稱之為異常。

1.2:jvm解決異常的方式:

  1、終止正在運(yùn)行程序
2、輸出當(dāng)前異常信息
a、異常的類型 (jdk內(nèi)部維護(hù)了當(dāng)前異常的一個(gè)對象 用當(dāng)前對象來描述當(dāng)前出現(xiàn)的異常)
b、異常的原因
c、異??赡艹霈F(xiàn)的行數(shù)
 

1.3:程序出現(xiàn)異常列子:

  1. package com.shsxt.exception;  
  2.   
  3. import java.util.Scanner;  
  4.   
  5. /*
  6.  * 用戶輸入兩個(gè)數(shù) 求兩個(gè)數(shù)的商
  7.  *  java.util.InputMismatchException    
  8.  * 
  9.  * 
  10.  */  
  11. public class Test02 {  
  12.       
  13.     public static void main(String[] args) {  
  14.           
  15.           
  16.         Scanner input = new Scanner(System.in);  
  17.         System.out.println("請輸入被除數(shù)---->");  
  18.         int num1 = input.nextInt();  
  19.         System.out.println("請輸入除數(shù)---->");  
  20.           
  21.         //關(guān)閉當(dāng)前的Scanner  
  22.         input.close();  
  23.           
  24.           
  25.         int num2 = input.nextInt();  
  26.         System.out.println(num1+"/"+num2+"="+(num1/num2));            
  27.     }  
  28. }  
 
報(bào)錯(cuò)信息:
 

 

二、通過業(yè)務(wù)邏輯解決異常的方式:

 
  1. package com.shsxt.exception;  
  2.   
  3. import java.util.Scanner;  
  4.   
  5. /*
  6.  * 手動解決異常問題
  7.  *      
  8.  *   通過大量的if判斷解決程序在執(zhí)行過程中可能出現(xiàn)的異常情況。
  9.  *   優(yōu)勢:確實(shí)可以將異常信息不交由jvm解決  顯示更友好的提示信息
  10.  *   劣勢:編寫的代碼量太大了 而且后期不利于維護(hù) 并且程序員永遠(yuǎn)不知道用戶有哪些輸入   
  11.  *   
  12.  *   
  13.  * 
  14.  * 
  15.  */  
  16. public class Test03 {  
  17.     public static void main(String[] args) {  
  18.           
  19.         Scanner input = new Scanner(System.in);  
  20.         System.out.println("請輸入被除數(shù)---->");  
  21.           
  22.         //判定一次用戶輸入的值是不是我們需要的  
  23.         if(input.hasNextInt()){//下一次獲取到的值是否是一個(gè)int值 如果是返回true 如果不是返回fasle  
  24.             int num1 = input.nextInt();  
  25.             System.out.println("請輸入除數(shù)---->");  
  26.             //判定用戶輸入  
  27.             if(input.hasNextInt()){  
  28.                 int num2 = input.nextInt();  
  29.                 if(num2!=0){  
  30.                     System.out.println(num1+"/"+num2+"="+(num1/num2));  
  31.                 }else{  
  32.                     System.out.println("除數(shù)不能為0");  
  33.                 }  
  34.             }else{  
  35.                 System.out.println("用戶輸入除數(shù)有誤");  
  36.             }  
  37.         }else{  
  38.             System.out.println("用戶輸入逇被除數(shù)有誤");  
  39.         }  
  40.      }  
  41. }  

PS:注意:

  1.   通過大量的if判斷解決程序在執(zhí)行過程中可能出現(xiàn)的異常情況。
  2.  *   優(yōu)勢:確實(shí)可以將異常信息不交由jvm解決  顯示更友好的提示信息
 *   劣勢:編寫的代碼量太大了 而且后期不利于維護(hù) 并且程序員永遠(yuǎn)不知道用戶有哪些輸入  
 
更多關(guān)于java異常情況及處理機(jī)制,請閱讀上海尚學(xué)堂《java異常與其處理機(jī)制

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約