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)
}
相关文档:
运行 bat(批处理) 文件
(不确定,我自己的简单demo是java可以执行批处理文件的)
Java 对批处理文件还不支持。刚开始一直在研究 Java 如何调用批处理文件,始终找不到解决方法。后来只好绕过批处理,考虑如何将批处理转换为exe可执行文件。然后再通过J ......
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"Cambria Mat ......
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构:
bootstrap classloader
|
extension classloader
|
  ......
Java 标准与规范
本栏目提供了大量的 Java 技术标准与规范的简介、官方网址以及 developerWorks 网站上相关的技术资源。通过本栏目,您不但可以了解当前 Java 社区主要的技术标准和规范,还可以通过查看相关的技术文章和教程进行更深入的学习,从而更好地为实际的 Java 项目进行技术选型。
A B C D E F ......
不久前用到了同步,现在回过头来对JAVA中的同步做个总结,以对前段时间工作的总结和自我技术的条理话。JAVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class li ......