易截截图软件、单文件、免安装、纯绿色、仅160KB

java throw error

异常
异常存在的目的
看一下C语言的出错处理方式
int f() {
    f1();
    f2():
    f3();
}//如果在每个函数后都增加出错的判断(如果是正常逻辑可以走不同的分支)并释放资源,那这个函数内会有太多与主干无关影响清晰阅读的代码存在,而且过多return有时会使得资源的忘记释放,
C语言常见的做法是使用goto
int f() {
    if (f1() < 0 ) goto end;
    f2():
    f3();
end:
    ...
}但如果函数f1和f2,f3需要不同的错误处理,那恐怕要增加多个标签,或者在if后边增加变量并在end后通过变量来判断,不过有if存在这样还是影响清晰
另一种做法是使用包裹宏或者包裹函数
int f() {
    if_false_return (f1() , -1);//包裹宏,执行出错返回给定值,不过在C语言内这似乎是一个比较理想的做法
    if_null_break(f2()):
    f3();//包裹函数,不过只能提供退出程序的操作,很多时候我们需要的是return操作
end:
    ...
}//似乎阅读起来也并不舒服,
最理想的方式是在函数主干逻辑外捕捉出错的问题,在Java中使用了抛出异常的方式,
try {
    //主干逻辑
}
catch() {
    //错误处理
}//还有没有一种更理想的方式,连try都不用(这个try{}看起来有点怪),譬如函数式不会出错那样,可譬如打开文件总是会出错的。
有时候我并不想函数的返回值异常时立即不执行下边的语句并跳入catch,而是想根据异常值进行调整呢?那使用异常就不好用了,还是要根据返回值判断。
譬如使用这种语法方式
f() {
    f1();
    f2();
    ...;
}
f_e() {
    ...;//完全在另一个函数内进行异常的捕捉呢
}
或者
f() {
    f1();
    f2();
    ...;
catch:
    switch class_e {
    case e1:
        ...
    }
}//RUBY中是如何实现的呢,LUA中呢?
C
f() {
    if (open_file1_error)
}


相关文档:

java 执行批处理文件

    运行 bat(批处理) 文件
(不确定,我自己的简单demo是java可以执行批处理文件的)
    Java 对批处理文件还不支持。刚开始一直在研究 Java     如何调用批处理文件,始终找不到解决方法。后来只好绕过批处理,考虑如何将批处理转换为exe可执行文件。然后再通过J ......

java程序员必读书籍

作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。
一、Java编程入门类
对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这 ......

java事件处理机制(自定义事件)【转】

java中的事件机制的参与者有3种角色:
1.event object:事件状态对象,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中
2.event source:具体的事件源,比如说,你点击一个button,那么button就是event source,要想使button对某些事件进行响应,你就需要注册特定的listener。
3.event listener ......

java调用notes API 发送邮件

最近需要调用Notes java API来发送邮件.主要参考了以下两个博客:
1   http://www.blogjava.net/jiangmin/articles/76137.html
这个博客完成了代码的主体. (把代码粘贴过来,马上可以用)
有一个地方需要更正:
   通过 Session s = NotesFactory.createSession((String)null, (String)null, "tops3cr3 ......

Java版世界时钟示例

这是一个Java版的世界时钟示例,移植自Gerrit创建的同名Swing应用(http://www.jug-muenster.de/swing-worldclock-427
),需要运行在JRE1.5或以上环境当中。
移植此示例主要是因为前一阵移植过Gerrit的swing原子钟示例,所谓好事成双,这个世界时钟的示例自然不能放过(话说Gerrit为什么那么喜欢做时钟?…&hellip ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号