1,异常处理
代码格式
try
{
}
catch ()
{
}
finally //必然会执行的代码,只有一种情况不会读到,调用System.exit(0);时。
{
}
class xxxException extends Exception
{}//这里面什么也没写,也可以覆写Exception的一些方法如getMessage()方法等。这是声明。
应用时,手动在代码段中throw出new xxxException();
为什么extends Exception而不是throwable呢,因为Exception是异常,而throwable不仅包含Exception而且包含了Error. 异常是可抛的。
2,异常体系:
Throwable
|--Error
|--Exception
|--RuntimeException
|--......
可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。API文档的解释。
此异常不在函数后声明的原因是想让程序停掉修改代码,而不是try catch处理异常以隐藏。编译时不被检测到。(运行时异常)。
正常流程代码和异常处理代码分开,阅读更清晰。
异常的转换处理,
当需要将异常产生的和本功能相关的问题提供出去或者本身无法处理,转换成新的异常如:
try
{
throw new AException();
}
catch (AException e)
{
//对AException 处理,抛出了BException。
throw new BException();
}
3,包:
一个包中只能有一个公有类,因为有public修饰的类,java文件名要和类名保持一致。
package pack;//包名全小写。
编译写法,javac -d D:\java program\day01 xxx.java
包中的类要public修饰,方法也要public修饰,这样调用者才有足够权限使用它。
包与包之间的权限有两种, public protected。
包名的简化书写,使用import关键字。