JAVA基础 day10 异常的处理 和 包的运用

异常:程序运行过程中出现的不正常。
异常的格式
try
{
需要被检测的代码
}
catch(异常类 变量)
{
处理异常的代码
}
finally
{
一定会执行的语句
}

可以直接在定义的功能上抛出异常 throws 。

自定义异常。需要定义一个类继承Exception类。
然后通过throw关键字抛出异常对象。throw new 异常类();
方法内部抛出异常的话,方法也需要进行抛出。
注意throw和throws。
throws可以抛出多个异常,用逗号隔开。
class FushuException extends Exception
{
}
class Demo{
public int div(int a,int b)throws FushuException
{
if(b<0)
throw new FushuException();
return a/b;
}
}

Exception中有一个特殊的子类异常,RuntimeException。

如果在函数内部抛出该异常,函数上就不用再抛出。
如果在函数上抛出了该异常,调用者可以不用try catch进行处理。
因为RuntimeExcption异常是不能处理的异常,他会直接让程序停止。

finally 代码块:一定会执行的代码
经常用来关闭资源

当子类覆盖父类的方法时,如果父类的方法抛出了异常,那么子类要么不抛出异常,要么抛出父类的异常或者父类异常的子类。

如果父类抛出了多个异常,当子类覆盖父类的方法时,只能抛出父类的子集或者不抛。

如果父类或者接口没有异常,那么子类在覆盖方法时,也不可以抛出异常,如果子类发生了异常,就必须进行try处理。

定义包:package 包名; 包名所有字母小写

源文件已经声明了包 ,在编译时就要 javac -d (存放的目录) 文件名 ,来指定包存在的目录。 运行时 java 包名.文件名

包中可以多层次,包中还有包。

包与包之间访问,类和方法都需要加上public。

不同包中的子类可以访问父类中被protected修饰的成员。

未导入其他包的时候,访问其他包的成员,需要添加包名 如:包名.方法名。
使用import 导入包中的类,便不需要。
如果包中有很多类,则可以
import 包名.包名.*;则可以把所有类全部包含进来。

当导入多个包,各个包中有重名的类时,必须加包名进行区分。

可以通过jar命令对多个包进行压缩

你可能感兴趣的:(java)