JAVA 异常的向上一级抛出有什么好处啊?

Python016

JAVA 异常的向上一级抛出有什么好处啊?,第1张

1、并不是所有的异常都适合向上一级抛出。只有这个方法(函数)不需要处理这个异常,并且出现异常时需要通知上一级方法时,才这样做。

比如:你写了两个函数:

A、解析文件内容的函数(比如提取文件内容中的特定字符串)

B、打开文件,并且读取文件内容的函数

A

函数

调用

B函数,对于文件不存在这样的异常,B函数中直接将异常向上一级抛出即可,因为出现了这样的异常,需要通知上一级函数。

感觉大部分应用中,直接将异常向上抛出是比较合理的,因为出异常的时候,上一级函数会发现,并且会在编码时做相应的处理。

2、如果在实际项目中,main函数也直接将异常抛出,这个程序就不够好了,因为用户可能直接会看到这个出现的异常。

File[]

childs

=

f.listFiles()

//listFiles()返回目录下的所有文件这句下面加上if(childs!=null){

for(){

}}如果传入的那个目录是不存在的话,childs就是null的,所以会报错

这是一个简单的目录树啊,,,你图片中的设计就是答案了呀

生成树的话只要把所有的记录全部查出来, 然后用递归的方法来判断 子菜单的ID 与主菜单的ID关联

给你个参考 我是把目录树生成成XML,,原理一模一样,,,我的表结构设计的也跟你完全相同

public StringBuffer initXml() throws FunctionsXmlTreeException {

strXml.append("<?xml version='1.0' encoding='utf-8'?>\n"

+ "<tree id='0'>")

try {

strXml.append(createTree(funs))

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace()

throw (new FunctionsXmlTreeException("生成功能目录数时出现错误!"))

}

strXml.append("</tree>")

return strXml

}

private String createTree(List<Functions>funlist) throws Exception {

StringBuffer xml = new StringBuffer()

for (Functions fun : funlist) {

xml.append("<item text='" + fun.getFunname() + "' id='"

+ fun.getFunid() + "' open='1'>\n")

if (null != fun.getFuns()) {

xml.append(createTree(fun.getFuns()))

}

xml.append("</item>\n")

}

return xml.toString()

}