1. 程式人生 > >異常處理--使用try,catch

異常處理--使用try,catch

  程式中總避免不了出現各種意想不到的狀況引發的錯誤,java中的錯誤以物件方式呈現為java.lang.Throwable的各種子類例項.
  只要我們能捕捉包裝錯誤的物件,就可以針對改錯誤做一些處理,如,試恢復正常流程,進行日誌記錄,以某種形式提醒使用者.

話不多說,下來我們看一個簡單的例子!

1.使用者可以連續輸入整數,最後輸入0結束後會顯示輸入數的平均值

package dongmengyuan;

/**
 * Created by dongmengyuan on 16-11-23.
 */

import java.util.Scanner;

public class Average
{
public static void main(String[] args) { Scanner input = new Scanner(System.in); double sum = 0; int count = 0; while(true) { int number = input.nextInt(); if(number == 0) { break; } sum += number; count++; } System.out.printf("平均 %.2f%n"
,sum/count); } }

  正確輸入每個整數,輸出預期結果:
  
  這裡寫圖片描述

  輸入錯誤的話,
  這裡寫圖片描述
 
  錯誤第一行,Exception in thread “main” java.util.InputMismatchException.
  Scanner物件的nextInt()方法,可以將使用者輸入的下一個字串剖析為int值,出現這個錯誤資訊,表示不符合Scanner物件預期.

  java中所有錯誤都被打包為物件,我們可以用try,catch代表錯誤物件後做出處理.

package dongmengyuan;

/**
 * Created by dongmengyuan on 16-11-23.
 */
import java.util.*; public class Average3 { public static void main(String[] args) { Scanner input = new Scanner(System.in); double sum = 0; int count = 0; while(true) { try { int number = input.nextInt(); if(number == 0) { break; } sum += number; count++; } catch (InputMismatchException ex) { System.out.printf("略過非整數輸入 %s%n",input.next()); } } System.out.printf("平均 %.2f%n",sum/count); } }

 執行結果為
  這裡寫圖片描述

//執行完catch區塊之後,由於還在while迴圈中,所以還可以繼續下一個迴圈流程

try,catch總結

  執行程式時,JVM會嘗試執行try區塊中的程式程式碼,如果發生錯誤,執行程式會跳離錯誤發生點,然後比較catch括號中宣告的型別,是否符合被丟擲的錯誤物件型別,如果是的話,就執行catch區塊中的程式程式碼,執行完並不會再返回try區塊.

相關推薦

Java基礎(一)異常處理關鍵字:try catch finally throw throws

cut main 5.1 模型 指針 str control 情況 實例   嗨咯,大家晚上好,我的博客首篇開始了 ,我們一起加油吧! 都說java 語言是非常健壯性 如:垃圾回收機制、內存模型、異常處理,強類型轉換、跨平臺,等等,使得Java語言的受到青睞。今天我們先來聊

java 異常處理方式之一 trycatch——finally

java 異常處理方式之一: try—catch——finally 1. 如何處理Exception的異常 2. 注: 3.dome 1. 如何處理Exception的異常 Java提供的是異常處理的抓拋模型為

SpringBoot2異常處理之用try/catch錯誤資訊並回滾事務(自動回滾/手動回滾/部分回滾)

問題背景 有時候,我們總是需要再SpringBoot2中對一個Service方法做一個完整的事務,發現異常時,進行回滾,然後又能返回錯誤資訊。 場景一:自動回滾(直接丟擲,不try/catch) @Override @Transactional(rollbackFor = E

Java異常處理-2-JVM異常處理方式和try catch處理異常

       前面我們大概瞭解了什麼是異常和為什麼要處理異常。這篇我們先通過了解JVM是如何預設處理異常,然後我們是如何主動去捕獲和處理異常的。1.JVM處理異常的方式      在Java中,Java

異常處理使用try,catch

  程式中總避免不了出現各種意想不到的狀況引發的錯誤,java中的錯誤以物件方式呈現為java.lang.Throwable的各種子類例項.   只要我們能捕捉包裝錯誤的物件,就可以針對改錯誤做一些處理,如,試恢復正常流程,進行日誌記錄,以某種形式提醒使用者

SQL Server 異常處理機制(Begin try Begin Catch) 摘錄

RoCE nsa lan seve -- isa weight roc 錯誤信息 begin try --SQL end try begin catch --sql (處理出錯動作) end catch 我們將可能會出錯的sql 寫在begin try..

java關於異常處理只使用try-finally而不使用catch

1. 前言: 通常我們在異常處理的時候一般就使用try-catch, try { // 需要處理的程式碼段 } catch(Exception e) { // 異常處理方法 } 更加好一些的處理方式為try-catch-finally,

C#異常處理機理程式碼分析

//程式碼核心: //1.通過屬性Age訪問私有欄位_age//2.設計異常處理(溢位,非數字字串,年齡範圍異常,其它異常)//3.自己定義一個異常類,繼承FormatException異常類 using System; public class OutString{   

Java異常捕獲之一道try-catch-finally語句題

span pri div system 處理機 out nal exception for 今天,學習了try-catch-finally語句,本來覺得蠻簡單、易懂的。搜了一道相關類型的題。結果信心被潑了盆冷水。先把題Mark一下,出去透透風。 1 public cla

C#中的異常捕獲機制(try catch finally)

一、C#的異常處理所用到關鍵字 try 用於檢查發生的異常,並幫助傳送任何可能的異常。 catch 以控制權更大的方式處理錯誤,可以有多個catch子句。 finally 無論是否引發了異常,finally的程式碼塊都將被執行。 throw 用於引發異常,可引發預定義異常和自定義異常

java入門---異常處理例項之多個異常處理(多個catch

    對異常的處理時,首先就是在宣告異常時,建議宣告更為具體的異常,這樣可以處理的更具體。然後呢,對方宣告幾個異常,就對應幾個catch塊, 如果多個catch塊中的異常出現繼承關係,父類異常catc

java入門---異常處理例項之使用 catch 處理異常

    以下例項演示了使用 catch 來處理異常的方法:public class Main {    public static void main (String args[]) {       

重構機房收費系統你要用的——異常處理和拋出異常try catch finally)——(vb.net)

style post blue 通過 alt list bcm round 導致 你能保證你的程序不會出問題嗎? 不能 當你的程序執行到某個地方發生了你不想要的結果。你是否想讓它一錯再錯? 不想 你是否想讓你的程序占著茅坑不拉屎? 不想 你是否想知道你的程序出錯的原因?

java中的try-catch-finnal異常處理(學習筆記)

不堪 java sha highlight 抽取 最終 throwable 關鍵字 學習筆記 一、異常概述 異常:Exception,是在運行發生的不正常情況。 原始異常處理: if(條件) {   處理辦法1  處理辦法2  處理辦法3} if(條件) {   處理辦法

java 異常處理機制,throws與throw,try-catch-finally

java 異常處理機制 1.Java異常處理 2.try-catch-finally的程式流程圖 3.關鍵解讀 4.demo 5.不捕獲異常時的情況 在編寫程式時,經常要在可能出現錯誤的地方

Java中try catch finally 中有異常和return時處理先後

public class TestDemo { private static String output = ""; public static void foo(int i) { try { if (i == 1) { throw new Exception(); }

js try catch處理異常

異常:很多情況都會導致異常 當程式出現了異常,會導致異常之後的程式碼無法執行(異常之前的程式碼是正常執行的) 進行異常處理,語法結構: 程式碼1 try{     可能會出現異常的程式碼2 }catch(e){     假如出現了異

js的異常處理 try catch

<script language="JavaScript"> try { throw new Error(10,"asdasdasd") } catch (e) { alert(e.message); alert(e.description)

【c#】異常處理try catch throw

        異常處理,是程式語言或計算機硬體裡的一種機制,用於處理軟體或資訊系統中出現的異常狀況(即超出程式正常執行流程的某些特殊條件)。 也就是說,在程式執行時出現的任何意外或異常情況時,處理這種意外或情況的方法,叫做異常處理。  

C++中用try - catch處理異常的情況

正常程式碼放在try塊,catch中捕獲try塊用throw關鍵字丟擲的異常。 例如: try { //將可能出現異常的情況放到try塊 if ( a >12 ) throw 12; // a >12時丟擲,若成立下面程式碼就不會再執行了 if ( a < 10 )