JAVA 编 程 技 术 主编 贾振华 2010年1月.

Slides:



Advertisements
Similar presentations
主要内容 Java 的常用包 Java 的常用包 “ == ” 和 “ equals ” 的用法 “ == ” 和 “ equals ” 的用法 基本数据类型与引用类型 基本数据类型与引用类型 String 和 StringBuffer String 和 StringBuffer 对象的克隆( clone.
Advertisements

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
第四章 类、对象和接口.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
项目6 通用堆栈.
檔案處理.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
四資二甲 第三週作業 物件導向程式設計.
算法设计与分析 Algorithm Design and Analysis
第五章 字符串.
視窗程式設計 2. 視窗版面配置 Chih Hung Wang Reference:
第二章 JAVA语言基础.
例外與檔案處理 例外處理 拋出例外 串流 Stream FileReader、FileWriter
Ch07 介面與多重繼承 物件導向程式設計(II).
輸入輸出 學習目標 瞭解串流與輸入輸出的關係 認識InputStream、OutputStream繼承架構
创意源自激情,技术成就梦想 畅翼创新俱乐部 2012年春俱乐部第三次技术培训 赵程.
第7章 输入输出处理.
第三章 控制结构.
JAVA 网络编程基础.
程式設計實作.
第5章 异常处理 王德俊 上海交通大学继续教育学院.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
API设计实例分析 通用IO API.
Java语言程序设计 清华大学出版社 第9章 网络通信.
例外處理(Exception Handling)
常用工具类.
Java 第28讲:建立删除文件 主讲教师:李焱 讲师.
Java基础 JavaSE异常.
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
Multithread 多執行緒 I/O Lecturer:楊昌樺.
JAVA 程式設計與資料結構 第六章 輸出與輸入.
本單元介紹何謂變數,及說明變數的宣告方式。
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
程式設計實作.
第四章 基本輸出入 Java應用程式的輸出入介面有三種,分別是命令提示字元視窗、AWT元件、及Swing元件。本單元先介紹命令提示字元視窗,AWT請看第16、17章,Swing請看第20章。 輸入 輸出.
抽象类 File类 String类 StringBuffer类
Java程序设计 第18章 二进制I/O.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第九章 输入/输出流.
第 14 章 例外處理.
Java语言程序设计 第五部分 Java异常处理.
第10章 儲存偏好設定、檔案與資料庫 10-1 存取偏好設定 10-2 檔案存取 10-3 關聯式資料庫與SQLite
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
第三章 流程控制與例外處理 資訊教育研究室 製作 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
例外處理與 物件序列化(Exception Handling and Serialization of Objects)
9.1 程式偵錯 9.2 捕捉例外 9.3 自行拋出例外 9.4 自定例外類別 9.5 多執行緒
第 十二 章 C# 中的文件处理.
异常及处理.
第一章 Java语言概述.
Java程序设计 第2章 基本数据类型及操作.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
第五讲 JSP中的文件操作(1) 教学目的 本讲主要讲述JSP中使用Java输入、输出流实现文件的读写 操作 。 知识要点
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第二章Java基本程序设计.
第7章 异常处理.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
2019/5/3 JAVA Socket(UDP).
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
Java程序设计 第17章 异常和断言.
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
第 5 章 常用类的使用 伍孝金
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
Summary
Presentation transcript:

JAVA 编 程 技 术 主编 贾振华 2010年1月

第8章 JAVA的异常处理

运行时发生的错误称为异常。处理这些异常就称为异常处理。 发生异常后此前分配的所有资源都将保留在相同的状态,这将导致资源漏洞。 JAVA 异 常 处 理 运行时发生的错误称为异常。处理这些异常就称为异常处理。 发生异常后此前分配的所有资源都将保留在相同的状态,这将导致资源漏洞。 Java程序中错误有不同的性质,按照错误的性质可以将程序错误分为三类:1)语法错 (编译的时候发现)2)语义错(运行时候发现) 3)逻辑错(很难确定和排除) 运行时出现的错误成为“异常”或“例外”。 Public class ExceptionDemo1{ public static void main(String args[]){ int a=0; System.out.println(8/a); }

JAVA 异 常 处 理 机 制 异常处理的执行过程 出现异常事件时,Java系统自动产生一个异常对象,并将这个对象传递给Java运行时系统,这个例外产生和提交的过程被称为 抛出异常(throw);当Java运行时系统得到例外对象以后它将会寻找处理这一例外的代码,找到能处理这一例外的方法以后,运行时系统把当前例外对象交给这个方法进行处理,这一过程称为捕获异常(catch)。

JAVA 异 常 类 的 层 次 和 主 要 子 类

1. 在“异常”类层次上的最上层有一个单独的类 叫Throwable,它是java.lang包中的类。 异常类的层次和主要子类 1. 在“异常”类层次上的最上层有一个单独的类 叫Throwable,它是java.lang包中的类。 2. java.lang.Error:由系统保留,通常Java程序不对这种错误进行直接处理,必须交由操作系统处理。 3. java.lang.Exception:供应用程序使用的,它是用户程序能够捕捉到的异常情况。 异常类的方法和属性 详见p140-144。

程序对错误与异常的处理方式有三种: 程序不能处理的错误,交操作系统处理; JAVA 异 常 处 理 类 程序对错误与异常的处理方式有三种: 程序不能处理的错误,交操作系统处理; 程序应避免而可以不去捕获的运行时异常(RuntimeException); 必须捕获(使用try-catch-final)的非运行时异常

(2)使用try~catch~finally语句。 (3)使用throw语句直接抛出异常或使用throws语句间接抛出异常。 JAVA 异 常 处 理 (1)由系统自动处理。 (2)使用try~catch~finally语句。 (3)使用throw语句直接抛出异常或使用throws语句间接抛出异常。

语法结构: JAVA try { 可能产生异常的代码段; } catch(异常类名1 对象名1) { 处理语句组1; } try - catch - finally语句 语法结构: try { 可能产生异常的代码段; } catch(异常类名1 对象名1) { 处理语句组1; } catch(异常类名2 对象名2) { 处理语句组2; } …… finally { 最终处理语句; }

try { …… } 这样catch会有什么结果? JAVA throw语句和throws子句  try { …… } 这样catch会有什么结果? catch(Exception ex){ …… }      catch(ClassCastException ex){ …… }     catch(NumberFormatException ex){ …… }     

(1)throw语句 (2)throws语句 用来明确地抛出一个异常, throw 异常; JAVA throw语句和throws子句 (1)throw语句 用来明确地抛出一个异常, throw 异常; 然后在包含它的所有try块中从内向外寻找与其匹配的catch语句块。 (2)throws语句 如果一个方法可能导致异常但不处理它,此时可在 方法声明中包含 throws 子句,发生了异常,由调用者处理。throws列举方法可能引发的所有异常。 这对于除Error或RuntimeException及它们子类以外类型的所有异常是必要的。 <方法名>(<参数行>)[throws<异常类1>,<异常类2>…] {if (异常条件1成立) throw new 异常类1(); if (异常条件2成立) throw new 异常类2(); … }

内置异常不可能始终足以捕获所有错误,因此需要用户自定义的异常类 JAVA 创 建 自 己 的 异 常 内置异常不可能始终足以捕获所有错误,因此需要用户自定义的异常类 用户自定义的异常类应为 Exception 类(或者Exception 类的子类)的子类 创建的任何用户自定义的异常类都可以获得 Throwable类定义的方法 class ArraySizeException extends NegativeArraySizeException{ ArraySizeException() { super(“您传递的是非法的数组大小”); } 该类是Exception的子类

第9章 输入/输出处理 (Java.IO )

数据流:是指在计算机的输入输出之间运动的数据序列。 输入输出是相对程序来说的,程序扮演两个角色:源和目的。 JAVA 输 入 / 输 出 流 的 概 念 数据流:是指在计算机的输入输出之间运动的数据序列。 输入输出是相对程序来说的,程序扮演两个角色:源和目的。 输入流:代表从外设流入程序的数据序列; 输出流:代表从程序流向外设的数据序列。 字节流:在输入输出过程中以字节为单位。 byte  8bit 字符流:在输入输出过程中以字符为单位。 char  Java 采用Unicode 16bit

JAVA 输 入 输 出 类 的 层 次

JAVA 输 入 输 出 类 的 层 次

public static final InputStream in 使用read()和skip(long n)方法读取。 2.标准输出 JAVA 标 准 输 入 输 出 1.标准输入 public static final InputStream in 使用read()和skip(long n)方法读取。 2.标准输出 public static final PrintStream out 使用print()和println()来输出。 3.标准错误输出 public static final PrintStream err

(1)创建FileInputStream类对象; (2)读取文件信息; (3)创建FileOutputStream类对象; JAVA 文 件 输 入 输 出 字 节 流 (1)创建FileInputStream类对象; (2)读取文件信息; (3)创建FileOutputStream类对象; (4)向输出流写信息: void write(int b); void write(byte b[ ]); void write( byte b[],int off,int len); (5)关闭FileInputStream流。

1、DataInputStream类,DataOutputStream类 1> 使用数据流方法: JAVA 过 滤 字 节 流 1、DataInputStream类,DataOutputStream类 1> 使用数据流方法: (1) 用前面的方法建立字节文件流对象; (2) 基于字节文件流对象建立数据文件流对象; (3) 用此对象方法对基本类型的数据进行输入/输出。 2> 创建数据流的构造方法。 2、BufferedInputStream类,BufferedOutputStream类 (1)创建流对象BufferedOutputStream;(2)用flush()方法更新流;(3)创建BufferedInputStream对象; (4)缓冲流类的应用。 3、PrintStream类

JAVA 输 入 输 出 字 符 流 常用的是InputStreamReader类 和OutputStreamWriter类 1.其构造方法: InputStreamReader(InputStream in); InputStreamReader(InputStream in,String enc); OutputStreamWriter(OutputStream out); OutputStreamWriter(OutputStream out,String enc); 2.读写方法 3.其他方法 String getEncoding() public void colse()

FileReader和FileWriter类是InputStreamReader和OutputStreamWriter的子类。 JAVA 文 件 输 入 输 出 字 符 流 FileReader和FileWriter类是InputStreamReader和OutputStreamWriter的子类。 构造方法各有两种: FileReader(File f) FileReader(String fn) FileWriter(File f) FileWriter(String fn) 常用方法: read(); read(char[] buffer); write(String str); write(char[] buffer);

BufferedReader类和BufferedWriter类 构造方法: BufferedReader(Reader in) JAVA 缓 冲 字 符 流 BufferedReader类和BufferedWriter类 构造方法: BufferedReader(Reader in) BufferedReader(Reader in,int size) BufferedWriter(Writer out) BufferedWriter(Writer out,int size) 常用方法:readLine( ); newLine( );