1. 程式人生 > >java的IO異常處理

java的IO異常處理

---------------------- ASP.Net+Android+IOS開發.Net培訓、期待與您交流! ---------------------- 

java中的 常表示程式執行過程中可能出現的非正常狀態,執行時異常表示虛擬機器的通常操作中可能遇到的異常,是一種常見執行錯誤。java編譯器要求方法必須宣告丟擲可能發生的非執行時異常,但是並不要求必須宣告丟擲未被捕獲的執行時異常。在API可以看到Exception中,有很多已知的子類,比較常見的有:ApplicationException, AWTException,DataFormatException, ClassNotFoundException,RuntimeException,SQLException, RuntimeException...... 等等,很多.

        其中RuntimeException是那些可能在 Java 虛擬機器正常執行期間丟擲的異常的超類。
RuntimeException是可以有異常但是不需要丟擲或者捕捉、包括它的任何子類都無需去捕捉。例如我們比較常見的IndexOutOfBoundsException, NullPointerException,....等等。 


 下面通過FileReader和FileWriter實現檔案的複製功能,並實現處理執行中出現的異常。。

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;


public class JavaException {

 /**
  * Java的IO異常處理
  */
 public static void main(String[] args) {
  //為什麼在try外面寫,是因為在finally裡面要使用,否則是訪問不到的
  FileWriter fileWriter=null;
  FileReader fileReader=null;
  try {
   //建立一個寫檔案物件,如果檔案不存在的話,他會自己建立一個檔案,如果檔案已經存在則會被覆蓋
   fileWriter=new FileWriter("D:\\java.txt");
   //這裡的目錄路徑出現兩個反斜槓是因為在字串中,的反斜槓需要轉義的轉義之後才是反斜槓
   fileReader=new FileReader("D:\\eclipse\\workspace\\Demo\\src\\test.java");
   
   //頂一個字元陣列,因為FileReader是一個處理字元的流的物件
   char[] buffer=new char[1024];
   int len=0;
   //把資料讀取到char陣列中,因為filereader讀取到結尾時,返回值為-1;所以用while迴圈作為條件
   while((len=fileReader.read(buffer))!=-1)
   {
    //把資料從字元陣列的開始到結束位寫入到D:\\java.txt的檔案中
    fileWriter.write(buffer, 0, len);
   }
   
   
  } catch (IOException e) {
   //在控制檯輸出捕獲到的異常
   System.out.println(e.toString());
  }
  finally
  {
   /**
    * 最後在finally裡面關閉流,釋放資源
    */
   
   /*
    * 這裡為什麼要判斷他是否為空,因為如在try中發生異常,fileReader物件是null的,在這裡如果不判斷,
    *直接關閉流的話,可能出現空指標異常
    */
   if(fileReader!=null)
   {
    try {
     fileReader.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
   
   
   if(fileWriter!=null)
   {
    try {
     fileWriter.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }

 }

}

 ---------------------- ASP.Net+Android+IOS開發.Net培訓、期待與您交流! ----------------------

相關推薦

Laravel 5.1 中的異常處理器和HTTP異常處理 abort()

錯誤日誌 exce ant upload 記錄 再次 .org splay don 原文 http://laravelacademy.org/post/1867.html 錯誤和異常是處理程序開發中不可回避的議題,在本地開發中我們往往希望能捕獲程序拋出的異常並將其顯示打印

JAVA學習第十九課(java程序的異常處理 (二))

num 函數 錯誤 style col 編譯失敗 return [] java 異常處理的捕捉形式: 這是能夠對異常進行針對性處理的方式 六、try、catch的理解 詳細格式: try { //須要被檢測異常的代碼 } catch(異常類 變量)//改變量用

C++筆記(8):C++異常處理

交互 under nbsp divide 析構函數 nat 花括號 ++ fff                     異常處理   C++異常處理機制是一個用來有效地處理運行錯誤的非常強大且靈活的工具,它提供了更多的彈性、安全性和穩固性,克服了傳統方法所帶來的問題.

PHP異常處理

class 兩個 images 捕獲異常 大於 image 信息 () 實例 首先要發生異常! 所謂的發生,指的是拋出一個異常! 然後是處理異常! 所謂的處理,就是一旦異常出現,要得到並處理這個異常,通常有兩個階段組成:監聽和捕獲! 流程: 1. 拋出異常 throw 2.

PDO異常處理

com pan war har from 模式 說明 我們 mod PDO提供了三種處理錯誤的方式 PDO::ERRMODE_SILENT:靜默模式(默認) PDO::ERRMODE_WARNING:警告模式 PDO::ERRMODE_EXCEPTION:異常模式 示例:

多態和異常處理的完美結合

iostream obi namespace cte del err size turn pre #include<iostream> using namespace std; class MyArray { public: MyArray(int m_l

C#進階系列——WebApi 異常處理解決方案(轉)

機制 輸出 ges 如果 但是 rom lba slist 解決 出處:http://www.cnblogs.com/landeanfen/p/5363846.html 閱讀目錄 一、使用異常篩選器捕獲所有異常 二、HttpResponseException自

Python 基礎之 異常處理

判斷 簡單 不讓 tor pen opened 分支結構 子類 inpu python 基礎之異常處理 說到異常處理,就得先問一下,什麽是異常處理? 先來看一下,什麽是異常? 異常就是:程序運行時發出的錯誤的信號。 異常的種類先來看一下: 一、常見的異常

Python--異常處理--12

body traceback 語法 top 屬性 識別 依賴 內核 lin Python 異常處理 原創博文,轉載請標明出處--周學偉http://www.cnblogs.com/zxouxuewei/ python提供了兩個非常重要的功能來處理python程序在運行中出現

異常處理

input void row print sca char 代碼 stream st2 java.lang.Throwable Error:錯誤 程序中不進行處理 Exception:異常,要求在編寫程序時,就要考慮到這些異常的處理。 編譯時異常 或運行時異常。 解

解析結構化異常處理(SEH)(第二部分)

ont .com 裏的 之間 地址 htm 完全 href 執行 書接上一篇:http://www.cnblogs.com/ONDragon/p/6855174.html 雖然這個異常回調機制很好,但它並不是一個完美的解決方案。對於稍微復雜一些的應用程序來說,僅用

python學習筆記7-異常處理

exec blog span log exception pytho clas 處理 cep 1 寫弄成了讀1 try: 2 fh = open("testfile", "r") 3 fh.write("This is my test file for exc

python之異常處理

value display 數值計算 錯誤 獲得 生成器 rec 縮進 路徑問題 第一:什麽是異常 異常即是一個事件,該事件會在程序執行過程中發生,影響了程序的正常執行。 在python中不同的異常可以用不同的類型(python中統一了類與類型,類型即類)去標識,不

Java_異常處理

向量 ktr end anti monitor 分享 三種 runtime 數據 Java 異常處理 異常是程序中的一些錯誤,但並不是所有的錯誤都是異常,並且錯誤有時候是可以避免的。比如說,你的代碼少了一個分號,那麽運行出來結果是提示是錯誤 java.lang.Error;

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

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

python筆記--異常處理

python、異常處理異常處理異常就是程序出現錯誤無法正常工作了,異常處理是通過一些方法對出現的錯誤進行捕捉,友好地顯示出來或進行相應的處理,使得程序能夠更長時間運行。1.異常種類常見的:SyntaxError 語法錯誤IndentationError 縮進錯誤TypeError

9.0異常處理

數據 logs dna 內容 語句 過多 array 數據類型 ear ---恢復內容開始---   在程序中總是存在各種錯誤,使應用程序在運行時終止。為了在程序執行過程中發生錯誤時能正常運行,可以使用Java提供的異常處理機制捕獲可能發生的異常,對異常進行處理並使程序能正

Spring MVC異常處理實例

bsp ips etag label 視圖 uri _id integer ive 以下內容引用自http://wiki.jikexueyuan.com/project/spring/mvc-framework/spring-exception-handling-examp

Laravel之加密解密/日誌/異常處理及自定義錯誤

文件中 例如 tom 處理器 crypt return cat 情況 而不是 一.加密解密 1.加密Crypt::encrypt($request->secret) 2.解密try {   $decrypted = Crypt::decrypt($encryptedV

springboot 統一異常處理

sping nbsp 用法 異常處理 exc png 不能 run ges 在sping框架裏定義我們想要的異常類,不能繼承Exception,要繼承RuntimeException,原因在於spring框架只對拋出的異常是RuntimeException,才會進行事務回滾