head first java 笔记 chapter 11~12
来源:互联网 发布:java中i和 i的区别 编辑:程序博客网 时间:2024/06/06 03:52
Chapter 11 异常处理
异常是一种Exception类型的对象,可以是任何他子类的实例。
表示调用代码可能产生风险(例如查找的文件不在该位置)
方法后面声明throws语句 会标出是那种异常。在方法中用关键字throw 后面跟创建出的异常对象。
在编写可能抛出异常的方法时,它们都必须声明有异常。
异常会被丢回给调用方,用try-catch来处理:
PrintStackTrace()对throwable对象的堆栈跟踪至错误输出流
注:runtimeException是不检查异常,一般是因为程序逻辑错误的问题,编译器不检查意味着可以不用catch异常。任何继承过RuntimeException的类都不会受编译器关于是否声明抛出RuntimeException的检查
try{//
}catch(Exception e){//
}finally{//
}
如果try块中没有抛出异常,那么不会运行catch块;如果抛出异常,那么会跳过其他程序直接运行catch块
其中finally块用来存放不管有没有异常都需要执行的程序(即使try catch块中有return,会先跳到finally再回去return);
多重异常 用逗号隔开
方法必须声明全部可能的检查异常,或者直接声明这些异常的父类
一个catch块可以catch一个单独的异常,或者不同父类的异常进行处理;应该为不同处理方式的异常编写不同的catch块
Catch时不能先catch父类再catch子类,要按照从小到大的顺序,否则后面的catch就不会有使用机会
Ducking躲闪掉异常
将异常返回给上一级:方法抛出异常时方法会从栈上被取出,丢给栈上的下一个方法。
JFrame 是最下面的窗体对象,要在上面添加各种组件(widget)
事件
用户在进行交互时对组件产生动作,通过监听接口来监听事件源是否要产生事件对象。Java上取得处理用户操作事件的过程称为even handling。例如按钮被按下,要在按键之间发生时调用执行功能的方法。
监听接口 是介于监听(用户)和事件源(按钮)之间的桥梁。
GUI组件是事件源,是可以将用户操作(点击鼠标,按键等)转换成事件的对象。Java中的时间几乎都是用对象表示的。每个事件类型都有相对应的监听接口,要实现接口就要实现接口中的方法。(能让按钮有一个回头调用程序的方式,接口就是用来声明调用call-back方法的地方)
例如ActionListener接口,需要实现actionPerformed(ActionEvent ev)方法,传入一个事件对象。当这个方法被调用时,参数会存到按钮中的清单里。
当要监听多个事件源时,需要使用到内部类。
内部类 :嵌套在另一个类的内部
内部类可以吧外部的方法和变量都当做自己的;内外可以交互使用变量。内部类的实例一定会绑在外部类的实例上;一般使用外部类的实例来创建内部类的实例。
(也可以从外部类以外的程序来初始化内部实例)
异常是一种Exception类型的对象,可以是任何他子类的实例。
表示调用代码可能产生风险(例如查找的文件不在该位置)
方法后面声明throws语句 会标出是那种异常。在方法中用关键字throw 后面跟创建出的异常对象。
在编写可能抛出异常的方法时,它们都必须声明有异常。
异常会被丢回给调用方,用try-catch来处理:
PrintStackTrace()对throwable对象的堆栈跟踪至错误输出流
注:runtimeException是不检查异常,一般是因为程序逻辑错误的问题,编译器不检查意味着可以不用catch异常。任何继承过RuntimeException的类都不会受编译器关于是否声明抛出RuntimeException的检查
try{//
}catch(Exception e){//
}finally{//
}
如果try块中没有抛出异常,那么不会运行catch块;如果抛出异常,那么会跳过其他程序直接运行catch块
其中finally块用来存放不管有没有异常都需要执行的程序(即使try catch块中有return,会先跳到finally再回去return);
多重异常 用逗号隔开
方法必须声明全部可能的检查异常,或者直接声明这些异常的父类
一个catch块可以catch一个单独的异常,或者不同父类的异常进行处理;应该为不同处理方式的异常编写不同的catch块
Catch时不能先catch父类再catch子类,要按照从小到大的顺序,否则后面的catch就不会有使用机会
Ducking躲闪掉异常
将异常返回给上一级:方法抛出异常时方法会从栈上被取出,丢给栈上的下一个方法。
Chapter12 用户图形接口Swing GUI
JFrame 是最下面的窗体对象,要在上面添加各种组件(widget)
事件
用户在进行交互时对组件产生动作,通过监听接口来监听事件源是否要产生事件对象。Java上取得处理用户操作事件的过程称为even handling。例如按钮被按下,要在按键之间发生时调用执行功能的方法。
监听接口 是介于监听(用户)和事件源(按钮)之间的桥梁。
GUI组件是事件源,是可以将用户操作(点击鼠标,按键等)转换成事件的对象。Java中的时间几乎都是用对象表示的。每个事件类型都有相对应的监听接口,要实现接口就要实现接口中的方法。(能让按钮有一个回头调用程序的方式,接口就是用来声明调用call-back方法的地方)
例如ActionListener接口,需要实现actionPerformed(ActionEvent ev)方法,传入一个事件对象。当这个方法被调用时,参数会存到按钮中的清单里。
当要监听多个事件源时,需要使用到内部类。
内部类 :嵌套在另一个类的内部
内部类可以吧外部的方法和变量都当做自己的;内外可以交互使用变量。内部类的实例一定会绑在外部类的实例上;一般使用外部类的实例来创建内部类的实例。
(也可以从外部类以外的程序来初始化内部实例)
阅读全文
0 0
- head first java 笔记 chapter 11~12
- head first java 笔记 chapter 1~3
- head first java 笔记 chapter 4~7
- head first java 笔记 chapter 8~10
- head first java 笔记 chapter 14~15
- head first java 笔记 chapter 16~18 + 附录
- <<head first java>>学习笔记
- 【note】Head First Java笔记
- head first java学习笔记
- Head First Java学习笔记
- Head First Java学习笔记
- <Head First Java>学习笔记--第一章:基本概念
- Head First Java笔记(1)基本概念
- Head First Java笔记(一)
- Head First Java笔记(二)
- Head First Java笔记(三)
- Head First Java笔记(四)
- Head First Java笔记(五)
- IBM与麻省理工学院联合建立AI实验室 承诺投资2.4亿美元
- poj 3094 Quicksum
- 最优间隔分类、原始/对偶问题、SVM对偶—斯坦福ML公开课笔记7
- 动态规划——最长上升子序列
- 如何使用instanceof操作符判断对象类型
- head first java 笔记 chapter 11~12
- 226. Invert Binary Tree
- nyist oj 17 单调递增最长子序列 (动态规划经典题)
- 八种架构设计模式及其优缺点概述
- 网络信息安全攻防学习平台上传关
- pyCharm常用快捷键及常用设置(自动保存,字体大小、样式,主题)
- Java toString的调用
- Servlet的生命周期
- 数据结构c语言链队