溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2021-12-08 11:44:01 來源:億速云 閱讀:195 作者:柒染 欄目:編程語(yǔ)言

本篇文章給大家分享的是有關(guān)Java異常解讀以及通過業(yè)務(wù)邏輯解決異常的方式是什么,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

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


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

1.1:定義

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

1.2:jvm解決異常的方式:

  1、終止正在運(yùn)行程序
2、輸出當(dāng)前異常信息
a、異常的類型 (jdk內(nèi)部維護(hù)了當(dāng)前異常的一個(gè)對(duì)象 用當(dāng)前對(duì)象來描述當(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("請(qǐng)輸入被除數(shù)---->");  

  18.         int num1 = input.nextInt();  

  19.         System.out.println("請(qǐng)輸入除數(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.  * 手動(dòng)解決異常問題

  7.  *      

  8.  *   通過大量的if判斷解決程序在執(zhí)行過程中可能出現(xiàn)的異常情況。

  9.  *   優(yōu)勢(shì):確實(shí)可以將異常信息不交由jvm解決  顯示更友好的提示信息

  10.  *   劣勢(shì):編寫的代碼量太大了 而且后期不利于維護(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("請(qǐng)輸入被除數(shù)---->");  

  21.           

  22.         //判定一次用戶輸入的值是不是我們需要的  

  23.         if(input.hasNextInt()){//下一次獲取到的值是否是一個(gè)int值 如果是返回true 如果不是返回fasle  

  24.             int num1 = input.nextInt();  

  25.             System.out.println("請(qǐng)輸入除數(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ì):確實(shí)可以將異常信息不交由jvm解決  顯示更友好的提示信息

 *   劣勢(shì):編寫的代碼量太大了 而且后期不利于維護(hù) 并且程序員永遠(yuǎn)不知道用戶有哪些輸入  


以上就是Java異常解讀以及通過業(yè)務(wù)邏輯解決異常的方式是什么,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI