java 又一次抛出异常 相关处理结果演示样例代码

package org.rui.ExceptionTest;
/**
* 又一次抛出异常
*
在某些情况下,我们想又一次掷出刚才产生过的违例,特别是在用Exception 捕获全部可能的违例时。因为我
们已拥有当前违例的句柄,所以仅仅需简单地又一次掷出那个句柄就可以。以下是一个样例:
catch(Exception e) {
System.out.println("一个违例已经产生");
throw e;
}
又一次“掷”出一个违例导致违例进入更高一级环境的违例控制器中。 用于同一个try 块的不论什么更进一步的
catch 从句仍然会被忽略。 此外,与违例对象有关的全部东西都会得到保留。所以用于捕获特定违例类型的
更高一级的控制器能够从那个对象里提取出全部信息。
若仅仅是简单地又一次掷出当前违例,我们打印出来的、与printStackTrace()内的那个违例有关的信息会与违
例的起源地相应。而不是与又一次掷出它的地点相应。若想安装新的堆栈跟踪信息,可调用
fillInStackTrace(),它会返回一个特殊的违例对象。这个违例的创建步骤例如以下:将当前堆栈的信息填充到
原来的违例对象里。以下列出它的形式:
* @author lenovo
*
*/
public class Rethrowing {
public static void f() throws Exception
{
System.out.println("f() 方法运行");
throw new Exception("thrown form f()");
} public static void g() throws Exception
{
try {
f();
} catch (Exception e) {
System.out.println("inside g() ,e...");
e.printStackTrace(System.out);
throw e;//把补获的异常 又一次抛出异常
}
} public static void main(String[] args)
{
try {
g();
} catch (Exception e) {
System.out.println("main 处理异常 ");
e.printStackTrace(System.out);
} } }
/**
f() 方法运行
inside g() ,e...
java.lang.Exception: thrown form f()
at org.rui.ExceptionTest.Rethrowing.f(Rethrowing.java:7)
at org.rui.ExceptionTest.Rethrowing.g(Rethrowing.java:13)
at org.rui.ExceptionTest.Rethrowing.main(Rethrowing.java:25)
main 处理异常
java.lang.Exception: thrown form f()
at org.rui.ExceptionTest.Rethrowing.f(Rethrowing.java:7)
at org.rui.ExceptionTest.Rethrowing.g(Rethrowing.java:13)
at org.rui.ExceptionTest.Rethrowing.main(Rethrowing.java:25)
*/
package org.rui.ExceptionTest;

/**
* 可能在捕获异常之后抛出还有一种异常。 有关原来的异常发生点的信息会丢失。
* 剩下的是与新的抛出点有关的信息
* @author lenovo
*
*/ //自己定义异常
class OneException extends Exception
{
OneException(String s){ super(s);}
}
class TwoException extends Exception
{
TwoException(String s){ super(s);}
} ////////
public class RethrowNew {
public static void f() throws OneException
{
System.out.println("运行f方法 f()");
throw new OneException("thrown from f()");//
} public static void main(String[] args)
{ try {
try {
f();
} catch(OneException e)
{
System.out.println("内部异常处理, e.printStackTrace()");
e.printStackTrace();
throw new TwoException("抛出异常 inner try");
} } catch (TwoException e) {
System.out.println("outer try ---外部的异常处理");
e.printStackTrace(System.out);
}
}
}
/**
* 最后那个异常仅知道自已来自main 而对f()一无所知
*
output:
运行f方法 f()
内部异常处理, e.printStackTrace()
org.rui.ExceptionTest.OneException: thrown from f()
at org.rui.ExceptionTest.RethrowNew.f(RethrowNew.java:18)
at org.rui.ExceptionTest.RethrowNew.main(RethrowNew.java:26)
outer try ---外部的异常处理
org.rui.ExceptionTest.TwoException: 抛出异常 inner try
at org.rui.ExceptionTest.RethrowNew.main(RethrowNew.java:31) */ ///:~
package org.rui.ExceptionTest;

import java.util.Date;

/**
* 字符串格式化 演示样例
*
* 当中float类型与double类型的数据,对于String.format()方法来说,全表示为浮点数,可使用的格式化參数如:
String.format("%a, %e, %f, %g",floatType,floatType,floatType,floatType);
当中
%a 表示用十六进制表示
%e 表示用科学记数法表示
%f 表示用普通的10进制方式表示
%g 表示依据实际的类型的值的大小,或採用%e的方式,或採用%f的方式 对于日期类型的:
如:
String dataStr = String.format("%1$tm-%1$te-%1$tY",dateType);
当中1$表示假设參数中有多个dateType那么取哪个dateType中的值,
t表示日期或时间格式,
m表示月,e表示日,Y表示年.
*/
public class StringFormatTest { public static void main(String[] args) {
float floatType=1000.00f;
double doubleTyep=11111111111111111.00d;
Date dateType = new Date();
String floatStr = String.format("%a, %e, %f, %g",floatType,floatType,floatType,floatType);
String doubleStr = String.format("%a, %e, %f, %g",doubleTyep,doubleTyep,doubleTyep,doubleTyep);
String dataStr = String.format("%1$tm-%1$te-%1$tY",dateType);
System.out.println(floatStr);
System.out.println(doubleStr);
System.out.println(dataStr);
} } /** output:
0x1.f4p9, 1.000000e+03, 1000.000000, 1000.00
0x1.3bcbf936b38e4p53, 1.111111e+16, 11111111111111112.000000, 1.11111e+16
06-26-2014
*/

java 又一次抛出异常 相关处理结果演示样例代码的更多相关文章

  1. java文件夹相关操作 演示样例代码

    java文件夹相关操作 演示样例代码 package org.rui.io; import java.io.File; import java.io.FilenameFilter; import ja ...

  2. java I/O进程控制,重定向 演示样例代码

    java I/O进程控制,重定向 演示样例代码 package org.rui.io.util; import java.io.*; /** * 标准I/O重定向 */ public class Re ...

  3. java 线程、线程池基本应用演示样例代码回想

    java 线程.线程池基本应用演示样例代码回想 package org.rui.thread; /** * 定义任务 * * @author lenovo * */ public class Lift ...

  4. 展示C代码覆盖率的gcovr工具简单介绍及相关命令使用演示样例

    (本人正在參加2015博客之星评选,诚邀你来投票,谢谢:username=zhouzxi">http://vote.blog.csdn.net/blogstar2015/candida ...

  5. Java 18 新增@snipppet标签,注释中写样例代码更舒适了!

    在这次的Java 18中,新增了一个@snipppet标签,主要用于JavaDoc中需要放示例代码的场景.其实在Java 18之前,已经有一个@code标签,可以用于在JavaDoc中编写小段的代码内 ...

  6. java 状态模式 解说演示样例代码

    package org.rui.pattern; import junit.framework.*; /** * 为了使同一个方法调用能够产生不同的行为,State 模式在代理(surrogate)的 ...

  7. Java连接redis的使用演示样例

    Java连接redis的使用演示样例 Redis是开源的key-value存储工具,redis通经常使用来存储结构化的数据,由于redis的key能够包括String.hash.listset和sor ...

  8. ArcSDE SDK For Java二次开发介绍、演示样例

    在一个工作中,遇到了须要java后台来查询ArcGIS 中用到的Oracle数据库空间数据,因为对ArcGIS空间数据首次接触,仅仅知道Oracle能够使用ST_GEOMETRY字段存储,例如以下图 ...

  9. HTTP基本认证(Basic Authentication)的JAVA演示样例

    大家在登录站点的时候.大部分时候是通过一个表单提交登录信息.可是有时候浏览器会弹出一个登录验证的对话框.例如以下图,这就是使用HTTP基本认证.以下来看看一看这个认证的工作过程:第一步:  clien ...

随机推荐

  1. Lambda表达式 简介 语法 示例 匿名内部类

    在AS中使用 Lambda 表达式 Demo地址:https://github.com/baiqiantao/MultiTypeTest.git Gradle(Project级别)中添加classpa ...

  2. 亚马逊AWS免费套餐EC2安装centos连接登录并创建root

    前言:刚开始使用亚马逊的AWS的免费套餐EC2,由于个人习惯使用centos系统,所以果断安装,但是AWS为了安全性,默认禁止用户使用root账户,导致安装配置环境各种问题.所以我把从安好系统后遇到的 ...

  3. effective C++中条款37:绝不又一次定义继承而来的缺省參数值

    virtual 函数会动态绑定,而virtual函数的缺省參数值是静态绑定的. 用一个base类型的指针p去指向一个derived类对象.通过p调用虚函数时,会动态绑定到实际所指对象中的函数:用一个d ...

  4. Linux上磁盘挂载

    Linux磁盘挂载   一.  磁盘分区 在终端输入fdisk –l 命令查看整个系统的分区情况. 能够看到另一个32G的/dev/vdb磁盘没有挂载使用 watermark/2/text/aHR0c ...

  5. Jacoco 代码覆盖率,监控WEB项目

    转载:https://blog.csdn.net/u010469432/article/details/73283824 jacococ代码覆盖率,以客户端形式直接监控远程代码 使用理解 jacoco ...

  6. (剑指Offer)面试题60:把二叉树打印成多行

    题目: 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行. 思路: 很明显,采用广度优先遍历来解决,但因为需要按行输出,所以需要判断每一层的开始和结束,因此需要两个变量,一个表示当前层尚 ...

  7. (笔试题)删除K位数字

    题目: 现有一个 n 位数,你需要删除其中的 k 位,请问如何删除才能使得剩下的数最大? 比如当数为 2319274, k=1 时,删去 2 变成 319274 后是可能的最大值. 思路: 1.贪心算 ...

  8. jQuery(一)引入

    一.jQuery简介 jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多) 二.安装 2.1.下载 下载地址:http://jq ...

  9. 分离链接散列表C语言实现实例

    /* hash_sep.h */ #ifndef _HASH_SEP_H #define _HASH_SEP_H #define MIN_TABLE_SIZE 5 struct list_node; ...

  10. 关于csdn博客中案例效果的动态演示

    在曾经一篇博文中,网友评论说要是案例效果是动态演示的就好了,我认为说的非常是有道理.由于一个简单的截图不能非常好的展示案例效果.要是有一张gif图能动态的播放案例效果就再好只是了.在这里提供一个小软件 ...