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中
String和int之间的相互转化
(1)int i = Integer([String]); 或
int i = Integer.parseInt([String],[int index]);
(2)int i = Integer.valueOf([String]).intValue();
int类型转化为String
(1)String s = String.valueOf([int]);
(2)String s = Integer.toString([int]);
......
<!--
/* 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 ......
instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。举个例子:
String s = "I AM an Object!";
boolean isObject = s instanceof Object;
我们声明了一个Strin ......
有些人写了一阵子 Java,可是对于 Java 的 package 跟 import 还是不太了解。很多人以为原始码 .java 文件中的 import 会让编译器把所 import 的程序通通写到编译好的 .class 档案中,或是认为 import 跟 C/C++ 的 #include 相似,实际上,这是错误的观念。
让我们先了解一下,Java 的 package ......
为减少DOM、SAX的编码量,出现了JDOM;
优点:极大减少了代码量。
使用场合:要实现的功能简单,如解析、创建等,但在底层,JDOM还是使用SAX(最常用)、DOM、Xanan文档。
必须得下载jdom.jar文件
package xml.jdom;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOExce ......