您的位置:首页 > 编程语言 > Java开发

Java基础 异常-finally 包package

2015-06-05 17:27 393 查看

异常

finally

finally代码块:定义一定执行的代码

通常用于关闭资源。

package 异常.Finally;

class FuShuException extends RuntimeException
{
FuShuException(String msg)
{
super(msg);
}
}
class Demo
{
int div(int a,int b)
{
if(b<0)
throw new FuShuException("出现了除数为负数");
if(b==0)
throw new ArithmeticException("被零除了 /0");
return a/b;
}
}

public class ExceptionDemo5 {

public static void main(String[] args) {
// TODO Auto-generated method stub
Demo d=new Demo();
try
{
int x=d.div(4, -1);
System.out.println("x="+x);
}
catch(FuShuException e)
{
System.out.println(e.toString());
return;
}
finally
{
System.out.println("finally");//finally中存放的是一定会执行的代码
}
System.out.println("Over");
}

}


输出:

异常.Finally.FuShuException: 出现了除数为负数

finally

异常-处理语句其他格式

第一个格式:

try
{
}
catch()
{
}


第二个格式:

try
{
}
catch()
{
}
finally
{
}


第三个格式:

try
{
}
finally
{
}


异常-覆盖时的异常

子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常,或者该异常的子类。

如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集

如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。

如果子类方法发生了异常,就必须要进行try处理,绝对不能抛。

package 异常.覆盖异常;

class AException extends Exception
{

}
class BException extends AException
{

}
class CException extends Exception
{

}
class Fu
{
void show()throws AException
{

}
}
class Zi extends Fu
{
void show()throws AException
{

}
}
public class ExceptionDemo7 {

public static void main(String[] args) {
// TODO Auto-generated method stub

}

}


异常总结

异常:

是对问题的描述,将问题进行对象的封装。

异常体系:

Throwable

Error

Exception

-RuntimeException

异常体系的特点:

异常体系中的所有类以及建立的对象都具备可抛性。

也就是说可以被throw和throws关键字所操作。

只有异常体系具备这个特点。

throw和throws的用法:

throw定义在函数内,用于抛出异常对象。

throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。

当函数内有throw抛出异常对象,并未进行try处理。必须要在函数上声明,否则编译失败。

注意:RuntimeException除外。也就是说,函数内如果抛出RuntimeException异常,函数上可以不用声明。

如果函数声明了异常,调用者需要进行处理。处理方法可以throws可以try.

异常有两种:

编译时被检测异常

该异常在编译时,如果没有处理(没有抛也没有try),编译失败。

运行时异常(编译时不检测),

在编译时,不需要处理,编译器不检查。

该异常的发生,建议不处理,让程序停止。需要对代码进行修正。

包(package)

对类文件进行分类管理

给类提供多层命名空间

卸载程序文件的第一行

类名的全程是 包名.类名

包也是一种封装形式

javac -d . PackageDemo.java

-d命令指定生成的class文件的存放目录。

.点号代表当前目录

关键词package

使用 package可以声明 该文件属于哪个包

package pack;//声明包名
public class Test{
public void show()
{
System.out.println("show");
}
}


import关键词

通过import关键词可以简化类名的书写,

import pack.*;//通过*通配符导入包中的所有类
import pack.pa.*;//导入子包中的类
class Demo
{
public static void main(String[] args)
{
Test t=new Test();
t.show();
}
}


建议不要写通配符 * ,需要用到包中的哪个类,就导入哪个类。

jar包

Java的压缩包

方便项目的携带

方便于使用,只要在classpath设置jar路径即可

数据库驱动,SSH框架等都是以jar包体现的

通过命令:

jar -cf 目标文件.jar 源文件目录1 源文件目录2

可以生成一个 目标文件.jar 包

-v参数,显示详细过程

jar -tf 目标文件.jar 显示jar包里的所有文件及目录

jar -xf 目标文件.jar 解压jar包中的文件

\Java\jdk1.6.0_43\lib\tools.jar

tools.jar\sun\tools\javac

存放了编译器javac的class文件

Java\jdk1.6.0_43\src.zip

存放了java所有类的源代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: