- 浏览: 1592299 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
异常的特点:
异常练习
异常的总结
/** *异常的特点: *1.异常在子父类覆盖中的体现 * 子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类. *2.如果父类抛出多个异常,那么子类在覆盖方法时,只能抛出父类异常的子集. *3.如果父类或者接口的方法中没有抛出异常,那么子类在覆盖方法时,也不可以抛出异常 * 如果子类方法发送了异常,就必须要进行 try处理,绝对不能抛出异常. */ class AException extends Exception{ } class BException extends AException{ } class CException extends Exception{ } class DException extends CException{ } /** * Exception * |--AException * |--BException * |--CException * |--DException */ class Fu{ void show() throws AException{ System.out.println("Fu show"); } void method() throws AException,BException{ System.out.println("Fu Method"); } } class Zi extends Fu{ void show() throws BException{ //如果这里为CException 编译不通过 System.out.println("Zi show"); } } class Zzi extends Fu{ /* void method() throws AException,CException{ //如果这里为CException 编译不通过 } void method() throws BException,CException{ //如果这里为CException 编译不通过 } void method() throws AException,DException{ //如果这里为CException 编译不通过 } void method() throws BException,DException{ } void method() throws BException{ } void method() throws DException{ } void method() throws AException{ } void method() throws CException{ }*/ void method(){ //可以看出 子类在重写父类的方法的时候 可以不抛出异常 也可以不处理父类中的异常 System.out.println("Zzi Method"); } } public class ExceptionDemo1 { public static void main(String[] args) { Fu f=new Zi(); try { f.show(); } catch (AException e) { //可以看出 如果这里是 AException 那么处理 BException 没有问题,而CException不能在这个catch处理 e.printStackTrace(); } Fu ff=new Zzi(); //不管 子类重写是否抛出异常 使用多态调用的时候 还是要进行异常处理 try { ff.method(); } catch (BException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (AException e) { // TODO Auto-generated catch block e.printStackTrace(); } Zzi zz=new Zzi(); zz.method(); /**打印 * Zi show * Zzi Method * Zzi Method */ } }
异常练习
/** * 异常练习 * 1.有一个圆形和长方形 * 都可以获取面积,对与面积如果出现非法数值,视为是获取面积出现的问题 * 问题通过异常来表示 * 现对这个程序进行基础设计 */ interface Shape{ void getArea(); } //添加异常子类 class NoValueException extends Exception{ NoValueException(String msg){ super(msg); } } class NoValue1Exception extends RuntimeException{ NoValue1Exception(String msg){ super(msg); } } class Rectangle implements Shape{ private int len,wid; Rectangle(int len,int wid) throws NoValueException{ //学了异常后 就不这么干了 if(len<=0 || wid<0){ //问题代码和 正常代码 结合紧密 System.out.println("错了"); }else{ this.len=len; this.wid=wid; } //使用异常来处理 (使用 分层的思想来理解更好) if(len<=0 || wid<0) throw new NoValueException("出现非法值"); //满足条件后就跳转了 不用加 else了 this.len=len; this.wid=wid; } public void getArea(){ System.out.println(len*wid); } } class Circle implements Shape{ private int radius; Circle(int radius){ if(radius<=0) // 使用运行时异常来处理 throw new NoValue1Exception("出现非法值"); this.radius=radius; } public void getArea(){ System.out.println(Math.PI*Math.pow(radius, 2)); } } public class ExceptionDemo2 { public static void main(String[] args) { try { Rectangle r=new Rectangle(-3,4); //其实 -3 传递进去 这个 长方形 是没有意义的 ,那后面的 什么 求面积 都是没有意义的 ,所以 这个异常 我们不需要处理 ,应改为 RuntimeException 让程序终止 r.getArea(); } catch (NoValueException e) { System.out.println(e.toString()); } System.out.println("Rec over"); //这样设计才合理 Circle c=new Circle(-3); //这样这句 出现 RuntimeException 异常后 程序就会终止 后面的 "计算面积" 和 "Circle over" 都不会执行 c.getArea(); System.out.println("Circle over"); } }
异常的总结
/** *异常的总结 *是什么? 是对问题的米哦啊数,将问题进行对象的封装' *----------------------------------- *异常体系: *Throwable * |--Error * |--Exception * |--RuntimeException * *异常体系的特点: 异常体系中的所有类以及建立的对象都具备可抛性 * 也就是说可以被throw 和throws关键字所操作. * 只有异常体系具备这个特点. *----------------------------------- *throw 和 throws的用法: * *throw定义在函数内,用于抛出异常对象 *throws 定义在函数上,用于抛出异常类,可以抛出多个用都好分开. * *当函数内容有throw抛出异常对象,并未进行try处理,必须要在函数上声明,否则编译失败. *注意:RuntimeException除外.也就是,函数内部如果抛出的RuntimeException异常,函数上可以不用声明 * *----------------------------------- *如果函数声明了异常,调用者需要进行处理,处理方法可以throws 和try * *异常有两种: * 编译时被检测异常 : * 该异常在编译时,如果没有处理(没有 throws 和 try),编译失败. * 该异常被标识,代表这可以被处理 * 运行时异常(编译是不检测): * 在编译时,不需要处理,编译器不检查 * 该异常的发生,建议不出力,让程序停止,需要对代码进行修正. *----------------------------------- *异常处理的语句 *try { * 需要检测的代码 *}catch(){ * 处理异常的代码 *}finally{ * 一定会执行的代码 *} * *有三种结合形式 * 1: try{ }catch(){} * 2: try{}finally{} * 3: try{}catch(){}finally{} * *注意: * 1.finally中定义的通常是,关闭资源代码,因为资源必须要释放. * 2.finally只有一种情况不会被执行,但执行到 System.exit(0);finally不会被执行. *----------------------------------- *自定义异常: * 定义类继承 Exception和RuntimeException * 1.为了让该自定义类具备可抛性 * 2.让该类具备操作异常的共性方法. * 当要定义自定义异常的信息时,可以使用父类已经定好的功能. * 异常信息可以传递给父类构造函数 * class MyException extends Exception{ * MyException(String message){ * super(message); * } * } * 自定义异常: 按照java的面向对象的思想,将程序中出现的特有问题进行封装. * *异常的好处 * 1.将问题进行封装 * 2.将正常流程代码和问题处理代码相分离,方便阅读. *----------------------------------- *异常处理的原则: * 1.处理方式有两种: try 或者 throws * 2.调用到抛出异常的功能时,抛出几个,就处理几个. * 一个 try 对应 多个 catch * 3.多个catch.父类的catch放在最下面. * 4.catch内需要定义针对性的处理方式.不要简单额定义 printStackTracke,或输出语句 ,不要不写. * 当捕获到的异常,本功能处理不了时,可以继续在catch中抛出. * try{ * throw new AException(); * }catch(AException e){ * throw e; * } * 如果该异常处理不了.但并不属于该功能出现的异常,可以将异常转换后,再抛出和该功能相关的异常.(比如前面例子:Teacher 讲课 冒烟问题) * 或者异常可以处理,但需要异常产生的和本功能相关的问题提供出去,让调用者知道,并处理.也可以将捕获异常后,转换新的异常. * try{ * throw new AException(); * }catch(AException e){ * //对 AException进处理 转转 和 数据库操作失败 等类是问题 * throw new BException(); * } *----------------------------------- *异常的注意事项 * 在父子类覆盖时: * 1.子类抛出的异常必须是父类的异常或者父类异常的子类或者 子集 * 2.如果父类或者接口没有异常抛出,子类覆盖出现异常,只能用 try不能抛出去 * *参阅 例子 * 1.老师用电脑上课 * 2.图像面积 */
发表评论
-
检测一个字符串是否在jvm的常量池中
2018-12-18 17:34 1007public static boolean inPool( ... -
UTC时间, GMT时间 ,夏令时
2017-08-18 15:12 2285经常混淆于此,特地研究了一下,记录在此以备忘。 整个地 ... -
java 反射List
2017-02-18 01:58 5663package com.enhance.reflect; ... -
JDK1.5 Exchange 两个线程互换数据
2016-08-04 18:00 1007import java.util.concurrent ... -
JDK1.5 CountDownLatch
2016-08-04 16:25 1057/* * 还有一个利用场景: ... -
java CyclicBarrier 循环障碍阻塞
2016-08-03 23:54 1014//一个同步辅助类,它允许一组线程互相等待,直到到达某个公 ... -
java 信号灯 Semaphore
2016-08-03 23:53 1828更多介绍http://blog.csdn.net/java20 ... -
java 使用读写锁设计一个缓存模型
2016-08-03 23:49 1420import java.util.HashMap; ... -
java 读写锁
2016-08-03 23:46 820import java.util.Random; i ... -
java 多个线程之间同步通信
2016-08-02 17:16 2401import java.util.concurrent ... -
jdk1.5 锁 Lock 和 Condition
2016-08-02 17:03 927// lock 练习 public class Lock ... -
JDK1.5 获取线程执行结果 Callable Future
2016-08-02 15:08 1176import java.util.Random; i ... -
JDK1.5 线程池
2016-08-02 14:48 806import java.util.concurrent ... -
java 多线程ThreadLocal
2016-08-02 00:13 1150import java.util.Random; ... -
java 定时器 Timer
2016-08-01 16:53 3897import java.util.Calendar; ... -
java 多线程同步+通信
2016-08-01 16:48 970/** *父子线程 交替打印10 次, 100次 ... -
java 线程同步
2016-08-01 16:43 1027import java.util.concurrent.l ... -
java多线程练习
2016-08-01 16:35 1843Java 传统多线程 Java 多线程同步 Java 多线 ... -
java 传统多线程
2016-08-01 16:34 1011/** * 传统多线程 */ public ... -
java 图片,剪切,缩放
2016-01-06 10:21 2234package out; import ja ...
相关推荐
6. **异常处理**:理解Java的异常处理机制,包括try-catch-finally语句块,以及自定义异常的创建。 7. **IO流**:学习输入/输出流的概念,包括文件操作、字节流和字符流,以及缓冲区的使用。 8. **集合框架**:...
Java编程语言以其强大的功能、跨平台的特性以及丰富的开源库,成为了全球软件开发者的首选工具之一。对于初学者来说,掌握Java技术可以打开许多职业发展机会。"Java100天速成"是一个专为新手设计的学习计划,旨在...
4. **异常处理**:学习JAVA的异常处理机制,掌握try-catch-finally语句块的用法,以及如何自定义异常。 5. **输入输出流**:理解I/O流的概念,学会使用FileInputStream、FileOutputStream、BufferedReader、...
第8-10天:数组和集合框架 数组是存储相同类型元素的固定大小的序列,而集合框架则是更灵活的数据结构,如ArrayList、LinkedList、HashSet、HashMap等。学习者将学习如何声明、初始化和操作数组,以及如何使用集合...
Java基础18天 Typora笔记概述 这是一份专为Java初学者准备的学习资源,由魔乐科技提供,旨在帮助用户在18天内建立起坚实的Java编程基础。Typora是一款简洁而高效的Markdown编辑器,使得笔记整理和阅读更加便捷。...
3. **异常处理**:Java提供了异常处理机制,通过try-catch-finally语句块来捕获和处理运行时错误,确保程序的健壮性。 4. **集合框架**:Java集合框架包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList...
10. **异常处理**:学习如何使用try-catch-finally语句来处理程序运行时可能遇到的问题,提高程序的健壮性。 11. **Java标准库**:熟悉和利用Java标准库中的各种类,如Math类、Date类、String类等。 在压缩包中的...
3. **异常处理**:Java提供了异常处理机制,通过try-catch-finally语句块,可以捕获并处理程序运行过程中的错误,提高程序的健壮性。 4. **集合框架**:包括ArrayList、LinkedList、HashMap等数据结构,以及它们的...
【Java教程21天速成】是一门专为初学者设计的快速掌握Java编程技能的课程。这21天的学习计划旨在帮助毫无编程基础或Java基础薄弱的学员在短时间内建立起坚实的编程基础,从而能够独立进行Java开发工作。下面将详细...
黑马程序员的Java零基础辅导班第二期提供了10天的课程,覆盖了Java语言的核心概念,包括语法、数据类型、控制结构、类与对象、异常处理等。通过观看这些视频,学习者可以逐步理解并应用Java编程思想。 【Java基础】...
21天自学速成Java语言电子书和21天学通Java语言的目标是帮助初学者快速掌握Java编程基础,通过系统的学习和实践,能够在短时间内具备独立编写Java程序的能力。 在21天的学习过程中,通常会涵盖以下关键知识点: 1....
通过“21天自学通”这份教材,你将逐步掌握这些知识点,最终能够独立编写简单的Java程序,为今后的软件开发之路打下坚实的基础。记得理论结合实践,多动手编写代码,遇到问题要积极解决,这样才能真正学以致用。祝你...
"java学习16天"可能是指一个为期16天的Java编程学习计划,旨在帮助初学者快速掌握Java基础并深入理解其核心概念。在这个过程中,学习者通常会涉及以下几个关键知识点: 1. **Java基础知识**:首先,学习Java需要...
10. **异常处理**:理解如何使用try-catch-finally语句块来捕获和处理异常,以及自定义异常。 11. **多线程**:掌握线程的创建与同步,包括Thread类、Runnable接口,以及synchronized关键字、wait()和notify()方法...
6. **异常处理**:讲解Java的异常处理机制,如何使用try-catch-finally语句块,以及自定义异常。 7. **文件与I/O流**:介绍文件操作,包括读写文件,以及I/O流的概念,如字节流、字符流和缓冲流的使用。 8. **面向...
《21天精通Java》是一本为初学者和有一定编程基础的人设计的Java教程,旨在通过21天的学习,帮助读者快速掌握Java编程的核心概念和技术。"21天"的概念源自于快速学习的理念,尽管这可能显得有些浮躁,但对那些时间...
《21天学通Java》是一本面向初学者的编程教程,旨在帮助读者在短时间内掌握Java编程基础。这本书由庞永庆、庞丽娟等人编著,提供了丰富的实例和实践练习,以帮助学习者深入理解Java语言的核心概念。源代码是书中各个...
7. **异常处理**:了解Java的异常处理机制,如何使用try-catch-finally语句块来捕获和处理运行时错误。 8. **字符串与集合**:学习String类的常用方法,以及ArrayList、LinkedList、HashSet、HashMap等集合框架的...
10. **Java Swing与JavaFX**: - **图形用户界面**:学习如何使用Swing或JavaFX库创建桌面应用程序。 - **组件与布局管理器**:掌握各种组件(如按钮、文本框)和布局管理器的使用。 在这个“21天学Java”的过程...
在“21天Java学习PPT”中,你将踏上一段深入学习Java编程语言的旅程。这个资源旨在帮助初学者在短短21天内建立起坚实的...记得理论与实践相结合,通过编写代码来加深理解和记忆,祝你在Java学习之旅上取得丰硕成果!