Java基礎 9.5

1.異常處理

基本介紹

異常處理就是當異常發生的時候 對異常處理的方式

異常處理方式

try-catch-finally

程序員在代碼中捕獲發生的異常 自行處理

throws

將發生的異常拋出 交給調用者(方法)處理 最頂級的處理者是JVM

示意圖

2.try-catch方式處理異常說明

Java提供try和catch塊來處理異常 try塊用于包含可能出錯的代碼 catch塊用于處理try塊中發生的異常 可以根據需要在程序中有多個try catch塊

基本語法

try {可疑代碼將異常生成對應的異常對象 傳遞給catch塊
} catch (異常) {對異常處理
}
//如果沒有finally 語法可以通過

注意事項

如果異常發生?則異常發生后面的代碼不會執行 直接進入到catch塊

如果異常沒有發生順序執行try代碼塊 不會進入到catch

如果希望不管是否發生異常 都執行某段代碼(比如關閉連接 釋放資源等)則使用finally{}

可以有多個catch語句 捕獲不同的異常(進行不同的業務處理)要求父類異常在后 子類異常在前 比如(Exception在后 NullPointerException在前)如果發生異常 只會匹配一個catch

可以進行try-finally配合使用 這種做法相當于沒有捕獲異常 因此程序會崩掉 應用場景:執行一段代碼 不管是否發生異常必須執行某個業務邏輯

3.小結

如果沒有出現異常,則執行try塊中所有語句,不執行catch塊中語句,如果有finally,最后還需要執行finally里面的語句

如果出現異常,則try塊中異常發生后,try塊剩下的語句不再執行。將執行catch塊中的語句,如果有finally,最后還需要執行finally里面的語句

4.練習

package com.logic.try_;import java.util.Scanner;/*** @author logic* @version 1.0*/
//如果用戶輸入的不是一個整數,就提示他反復輸入,直到輸入一個整數為止
public class Homework01 {public static void main(String[] args) {/*1.創建Scanner對象2.使用無限循環 去接收一個數3.將該輸入的值 轉成一個int4.如果在轉換時 拋出異常 說明輸入的內容不是一個可以轉成int的內容5.如果沒有拋出異常 break */Scanner scanner = new Scanner(System.in);int n1 = 0;String inputStr = "";while (true) {System.out.print("請輸入一個整數: ");inputStr = scanner.next();System.out.println("輸入完畢...");try {n1 = Integer.parseInt(inputStr);break;} catch (NumberFormatException e) {System.out.println("輸入有誤...");}}System.out.println("你輸入的值是: " + n1);}
}

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

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

相關文章

B.50.10.06-NoSQL數據庫與電商應用

NoSQL數據庫核心原理與電商應用實戰核心思想: NoSQL (Not Only SQL) 數據庫是為了解決傳統關系型數據庫在超大規模數據、高并發和靈活數據模型方面的不足而設計的。它們通過犧牲部分一致性(通常是最終一致性)和事務的嚴格性,來換取極高的性能…

把開發環境丟云上,我的電腦風扇再也沒轉過!

Hello,兄弟們,我來啦作為一個天天搬磚的程序員,每天最讓我心態爆炸的是啥?不是產品又改需求,也不是 Bug 藏得深,而是TMD——配!環!境!新項目 git clone 下來,…

驅動ft232h通信

FT232H是一個單通道USB 2.0高速(480Mb/s)轉換為UART/FIFO IC,具有多種工業標準串行或并行接口配置能力。 1.實驗板卡 FPGA型號: FT232H型號: FT232H SINGLE CHANNEL HI-SPEED USB TO MULTIPURPOSE UART/FIFO IC Da…

隔空盜刷、AI釣魚、代理劫持…金融黑產竟進化至此?

【導讀】中國工商銀行發布的《2024網絡金融黑產研究報告》,以深度洞察拆解黑產攻擊“新變種”、勾勒防護新路徑,自發布以來,成為金融安全行業的重要參考坐標。本文會提煉出報告中黑產攻擊的五大技術演變與體系化防護思路,再結合金…

服務器為啥離不開傳感器?一文看懂數據中心“隱形守護者”的關鍵角色

在現代數據中心或企業機房中,服務器不僅僅是“跑程序”的機器,它們還是一整套復雜系統的一部分。為了保證這些服務器穩定、高效、安全地運行,傳感器成了不可或缺的角色。那么,服務器為啥要有傳感器?這些傳感器到底是干…

React JSX 語法講解

🚀 React JSX 語法講解 1. 課程概述 本課程旨在系統講解 JSX(JavaScript XML) 的核心概念與實戰應用。JSX 是 React 的核心語法擴展,它允許我們在 JavaScript 中編寫類似 HTML 的結構,使得構建用戶界面變得直觀和高效。…

軟件安裝教程(四):在 Windows 上安裝與配置 MATLAB(超詳細)

文章目錄前言1. 安裝前準備(必看)2. 下載 MATLAB(推薦在線安裝)3. 在 Windows 上安裝(詳細步驟)4. 激活 MATLAB(在線與離線)5. 首次啟動與界面入門6. 推薦的基本配置(讓環…

【運維自動化-標準運維】如何創建流程嵌套(子流程)

什么是子流程節點 標準運維里的流程節點有兩類:標準插件節點和子流程節點。子流程節點實際上也是一個流程,比如某個業務線做全網更新時需要更新多個模塊,那每個模塊的更新流程可以稱之為一個子流程。在總流程里直接添加子流程,就通…

clickhouse遷移工具clickhouse-copier

原來的集群沒有高可用而且配置很低,所有準備將一個3分片1副本集群遷到1分片2副本的高配置集群,數據量比較大。 雖然官方已經標記clickhouse-copier已經過時,但為了方便和高效還是用了copier,效果還挺好 以下是使用步驟&#xff1a…

高頻超聲波傳感器:以精準感知重塑未來科技生態

在智能制造的浪潮中,高頻超聲波傳感器正以“隱形工程師”的角色,重新定義著工業檢測、醫療診斷與環境監測的邊界。這款融合了壓電材料科學與微納電子技術的精密儀器,憑借其亞毫米級測量精度與納秒級響應速度,正在成為高端裝備制造…

殘差連接與歸一化結合應用

殘差連接(Residual Connection / Skip Connection)和歸一化(Normalization)的結合,是現代深度學習模型(尤其是深度神經網絡和Transformer架構)成功的關鍵因素之一。 核心概念回顧殘差連接 (Resi…

K8s集群+Rancher Server:部署DolphinScheduler 3.2.2集群

本文手把手演示了如何在 K8s Rancher 環境中快速拉起一套生產可用的 Apache DolphinScheduler 3.2.2 集群。全文圍繞“鏡像加速、依賴本地化、存儲持久化”三大痛點展開,附有詳細的代碼解析,收藏細看吧! 環境準備 1、軟件準備2、環境規劃部署…

查詢語言的進化:SQL之后,為什么是GQL?數據世界正在改變

數據是現代世界的核心驅動力。 在數據驅動的世界里,查詢語言就像人與數據溝通的橋梁。 如何高效地獲取、操作和理解數據,取決于查詢語言的演進。 自20世紀70年代關系型數據庫興起以來,SQL(Structured Query Language&#xff0…

AgentThink:一種在自動駕駛視覺語言模型中用于工具增強鏈式思維推理的統一框架

文章目錄摘要1. 引言2. 相關工作2.1 自動駕駛中的語言模型2.2 自動駕駛中的視覺問答3. 方法3.1 數據生成流水線3.2 兩階段訓練流程3.2.1 基于 SFT 的推理預熱3.2.2 基于 RLFT 的推理增強3.3 推理與評估4. 實驗4.1 主要實驗結果4.2 工具使用分析4.3 消融實驗4.4 泛化性評估5. 結…

Bug 排查日記:打造高效問題定位與解決的技術秘籍

一、引言在軟件開發的漫漫征程中,Bug 如影隨形,成為開發者們必須跨越的一道道障礙。它們或如微小的瑕疵,影響用戶體驗;或似隱藏的炸彈,引發系統故障,導致嚴重后果。高效排查 Bug,不僅是保障軟件…

使用 Sentry 為 PHP 和 Web 移動小程序提供多平臺錯誤監控

今天我在 reddit 上看到 Sentry 的推廣,想到 19 年我第一次在公司自研產品b2b2c上使用 Sentry 的經歷,后面在其他項目上多次使用Sentry,今天就順手分享一下在 Laravel 項目中接入 Sentry 的實踐心得。現代項目往往涉及 Web、移動端和小程序&a…

Python包管理工具全對比:pip、conda、Poetry、uv、Flit深度解析

在Python開發中,包的管理和使用是重要環節,現如今python包管理工具眾多,如何選擇合適的管理工具?常用的工具有pip、conda、Poetry、uv、Flit,下面這些工具進行詳細對比分析。一、工具概覽對比工具類型開發者主要特點適…

車載診斷架構 --- Service 14一丟丟小匯總

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做你把時間花在哪里,你的人生就在哪里。千萬別看見別人發光,就覺得自己暗淡。人生如逆旅,你我皆行人。唯有不斷閱己、越己、悅己才能活出生命的意…

Struts2 工作總結

一 in,在SQL中,IN 是一個條件操作符,用于指定多個可能的值,通常用在 WHERE 子句中。它的作用是檢查某個字段的值是否在給定的值列表中,相當于多個 OR 條件的簡寫形式。不使用 IN(冗長)SELECT * …

MQTT 認證與授權機制實踐(二)

四、實戰案例:主流 Broker 的認證授權配置指南(一)EMQ X:企業級物聯網 Broker 的安全方案1. 認證配置(用戶名密碼 證書)EMQ X 作為一款企業級物聯網 Broker,在安全認證方面提供了豐富且靈活的配…