高級異常

一、什么是異常

  解析:異常就是在程序的運行過程中所發生的不正常事件

二、Java異常處理是通過5個關鍵字來解決的:try、catch、finally、(前三個是捕獲異常)throw(手動拋出異常)、throws(聲明異常)。

三、1)try-catch塊

public class Text3 {/*** @param args*1、 Java的異常處理是通過五個關鍵字來實現的:* try、catch、finally、throw、throws*2、 e.printStackTrace();//輸出異常的堆棧信息* 3、String getMessage():返回異常信息描述字符串*     字符串描述異常產生的原因是:printStackTrace()輸出信息的一部分* 4、使用Try-catch如果有輸入錯誤那么到哪一行以后忽略其它行直接進入*     catch塊中執行*/public static void main(String[] args) {Scanner input=new Scanner(System.in);System.out.println("請輸入被除數:");try {int num=input.nextInt();System.out.println(num);System.out.println("請輸入除數");int num1=input.nextInt();System.out.println(String.format("%d/%d=%d",num,num1,num/num1));System.out.println("感謝使用本程序");} catch (Exception e) {System.err.print("出現錯誤被除數和除數;必須都是整數,"+"除數不能為0");e.printStackTrace();//輸出異常的堆棧信息}

?2)多重catch

package cn.happy.lianxi;import java.util.InputMismatchException;
import java.util.Scanner;public class Text5 {/*** @param args* catch(Exception e)--------->排列順序必須是從子類到父類*/
private void mian() {Scanner input=new Scanner(System.in);System.out.println("請輸入被除數:");try {int num=input.nextInt();System.out.println(num);System.out.println("請輸入除數");int num1=input.nextInt();System.out.println(String.format("%d/%d=%d",num,num1,num/num1));System.out.println("感謝使用本程序");}catch(InputMismatchException e){System.out.println("輸入的被除數和除數必須都是整數");}catch(ArithmeticException e){System.out.println("除數不能為零");}catch(Exception e){System.out.println("其它未知異常");}finally{System.out.println("感謝使用本程序");}}
}

3)try-catch-finally

package cn.happy.lianxi;public class TText1 {/** System.exit(1);            jvm異常退出* System.exit(0);            正常退出* try---catch---finally  捕獲異常* throw     拋出異常* throws    聲明異常* * * * *///聲明異常或者用try---catch
public static void main(String[] args) throws Exception {try {int result=5/0;System.out.println(result);} catch (Exception e) {System.out.println("錯誤");}

4)throw----throws

package cn.happy.lianxi;public class ClaTT {//聲明異常public void Cal(int num,int num1) throws Exception{if(num1==0)//拋出異常throw new Exception ("除數不能為0");else{int result=num/num1;System.out.println(result);}}}

?

?

注意點:

  1、一般情況下都會走finally塊,只有在如下情況下不會走到

try{
//代碼
}catch(Exception e){System.exit(0);        //正常退出
}finally{System.out.print("不會finally代碼塊");
}

  四、異常的分類

  

轉載于:https://www.cnblogs.com/yejiaojiao/p/5431796.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255451.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255451.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255451.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【糾錯】——錯誤:PermissionError: [WinError 32] 另一個程序正在使用此文件,進程無法訪問。“+解決方案

目錄 問題出現場景 原因 解決方案 問題出現場景 先打開pdf文件,獲取pdf文件內容后,利用os.remove()來刪除文件,這時候出現錯誤 os.remove(source_path)PermissionError: [WinError 32] 另一個程序正在使用此文件,進程無法訪問。…

Eclipse中自動添加注釋

方法一:Eclipse中設置在創建新類時自動生成注釋 windows-->preference   Java-->Code Style-->Code Templates     code-->new Java files 編輯它 ${filecomment} ${package_declaration} /** * Author fufu* Time ${date} ${time} * Version 1.…

使用rancher創建負載均衡服務

2019獨角獸企業重金招聘Python工程師標準>>> 2臺主機,一個server包含2個容器進程(可以是多個),一個負載均衡容器(貌似是依賴haproxy的) 1,創建一個鏡像,編輯Dockerfile 創…

Six Basic Functional Areas of Spring

轉載于:https://www.cnblogs.com/Brake/p/5440738.html

【pyqt5學習】——登錄界面跳轉到主界面,登錄界面關閉的情況下從主界面跳轉回登錄界面

目錄 一、登錄界面長下面這樣,由qt designer設計 login.py 二、登錄界面 邏輯代碼loginLogic.py 三、主界面comsumeType.py 四、主界面邏輯代碼comsumeTypeLogic.py 五、登錄界面跳轉至主界面 六、主界面回到登錄界面 一、登錄界面長下面這樣,由qt d…

關于問題vxworks與linux區別

vxWorks Linux 內核 結構 微內核, 內核只提供 了基本的服 務,如:任 務管理,內 存管理,中 斷處理等 宏內核, 除了基本的 服務,內核…

【python學習】——獲取桌面路徑,獲取系統盤符,獲取電腦用戶名,獲取軟件自啟動存放目錄

目錄 1、獲取桌面路徑 法一:利用winshell庫 法二:利用winreg庫 2、獲取系統盤符 3、獲取電腦用戶名 4、獲取軟件自啟動存放目錄 1、獲取桌面路徑 法一:利用winshell庫 import winshell print(winshell.desktop()) 法二:利…

團隊項目:個人工作總結10

團隊項目:個人工作總結10 一.昨天干了什么改進現有的成果二.今天準備干什么做最后的調試分析改進整合。三.遇到的困難任務還是沒有完成轉載于:https://www.cnblogs.com/kongyuhang/p/5442714.html

WPF ClickOnce應用程序IIS部署發布攻略

WPF程序非常適合公司內網使用,唯一缺點就是客戶端要安裝.net框架4.0。優勢也很明顯,在客戶端運行的是一個WinForm程序,自動下載,可以充分利用客戶機的性能,而且是以當前的Windows用戶權限運行,避免了權限帶…

文件傳輸協議

文件傳輸協議(英文:File Transfer Protocol,簡稱為FTP)是用于在網絡上進行文件傳輸的一套標準協議。它屬于網絡傳輸協議的應用層。 FTP是一個8位的客戶端-服務器協議,能操作任何類型的文件而不需要進一步處理&#xff…

36.LEN() 函數

LEN() 函數 LEN 函數返回文本字段中值的長度。 SQL LEN() 語法 SELECT LEN(column_name) FROM table_name SQL LEN() 實例 我們擁有下面這個 "Persons" 表: IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York…

【python學習】——為exe軟件創建快捷方式;實現軟件自啟動

目錄 1、為exe創建快捷方式 2、實現軟件自啟動 3、完整代碼 4、結果展示 1、為exe創建快捷方式 利用winshell庫的CreateShortCut函數進行創建 【python學習】——獲取桌面路徑,獲取系統盤符,獲取電腦用戶名,獲取軟件自啟動存放目錄_有情懷…

dedecms如何調用當前欄目的子欄目及子欄目文章

前面ytkah談到了 dedecms調用當前欄目的子欄目怎么操作,有的朋友會問如果再增加一個調用子欄目文章的需求,即調用當前欄目的子欄目及子欄目文章,這個有辦法實現嗎?這時就要涉及到另外兩個標簽的調用了,dede:channelart…

控制面板項 .cpl 文件說明

控制面板項 .cpl 文件說明appwiz.cpl 程序和功能、卸載或更改程序bthprops.cpl 藍牙控制面板desk.cpl 屏幕分辨率Firewall.cpl WINDOWS防火墻hdwwiz.cpl 設備管理器igfxcpl.cpl 英特爾圖形和…

vxWorks下常用的幾種延時方法

在應用編程的時候,通常會碰到需要一個任務在特定的延時之后執行一個指定的動作,如等待外設以確保數據可靠,控制揚聲器發聲時間以及串口通信超時重發等。這就需要利用定時器機制來計量特定長度的時間段。 vxWorks作為實時嵌入式系統&#xff0…

【pyqt5學習】——窗口最小化至托盤、取消任務欄圖標

目錄 1、最小化至托盤 1)重寫系統托盤類,設置托盤圖標等屬性 2)將具體的窗口放入托盤 2、取消任務欄界面圖標 3、問題匯總 1)退出后托盤圖標還是存在,沒有消失 2)最小化后左下角會出現 窗口 3&#…

標準庫類型String,Vector

string對象中每個字符的處理&#xff1a; 要用到 for(聲明:表達式) 語句 比如簡單的打印string str中每一個字符 --- string str("hello world!!!"); for(auto c: str)cout<<c<<endl; (ps:這里auto 的意思是讓編譯器自己來決定c變量的類型) --- 再舉一…

React 是怎樣煉成的

本文主要講述 React 的誕生過程和優化思路。 內容整理自 2014 年的 OSCON - React Architecture by vjeux&#xff0c;雖然從今天&#xff08;2018&#xff09;來看可能會有點歷史感&#xff0c;但仍然值得學習了解。以史為鑒&#xff0c;從中也可以管窺 Facebook 優秀的工程管…

HOJ 1640 Mobile Phone

題意&#xff1a;有一個n*n的矩陣&#xff0c;op1時&#xff0c;在(x,y)增加值z&#xff0c;op2時&#xff0c;求以(x1,y1)和(x2,y2)構成的矩陣的和。 思路&#xff1a;二維線段樹。 代碼&#xff1a; 1 #include<stdio.h>2 #include<string.h>3 const int N1111;4…

vxWorks多任務編程初探-上

進程&#xff08;Process&#xff09;是具有一定獨立功能的程序關于某個數據集合上的一次運行活動&#xff0c;是系統進行資源分配和調度的一個獨立單位。程序只是一組指令的有序集合&#xff0c;它本身沒有任何運行的含義&#xff0c;只是一個靜態實體。而進程則不同&#xff…