我们有一个允许用户上传文件的系统,我们循环浏览该文件,然后制作另一个文件。上传文件的用户是登录用户。

问题在于文件包含敏感数据,因此我们必须将其删除。您可以想象有几个地方可以将更多信息写入文件并读取文件。有时在此页面上会发生错误(通常与CFFILE有关)。

所以我的问题是,将所有代码(无论如何大部分代码)都放在一个大型CFTRY中可以吗?然后捕获发生的任何异常,然后在CFCATCH内运行另一个CFTRY来删除2个文件?(阅读更新)我不太担心性能,因为该过程一天不执行一百万次,可能一个月执行3次。 。

这是确保文件被删除的可接受做法吗?

更新我不会删除CFCATCH中的文件。我将首先检查是否存在。然后删除它们。

最佳答案

只要有必要,就可以使用try/catch。如果您将try/catch放在101行代码而不是允许的100行代码中,那么没有CFML警察会在半夜将您拖走。

但是,正如@Tomalak所说,您的措辞有点暗示代码可以进行一些重构。您说无法重构代码,但是添加异常处理已经在重构,因此显然您可以做到这一点。因此,请正确执行。隔离功能部分,并将其放入单独的模块中(我不是要像<cfmodule>那样调用,我一般是指该术语),因为它们是UDF,一个或多个CFC中的方法(它们可能是完全不同的,所以可能不是适用于单个CFC),甚至只包含文件。以后可以更好地重构它们。请记住,开发是迭代的和周期性的:每次进行更改时,您都不需要它是完美的。一方面,“完美”的定义随着需求的变化而变化。但是您应该致力于在维护代码时始终对其进行改进。而且我不认为简单地对整个过程进行一次尝试/捕获就可以带来改进,更像是“此代码已失控”。

我可以建议的另一件事是进行改进,然后将其发布到https://codereview.stackexchange.com/上,然后找出其他人的想法。我不知道有多少CFers居住在该网站上,所以这样做后,最好在Twitter上发布标有#ColdFusion的内容。

关于coldfusion - 将CFTRY标签包裹在所有内容上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14517139/

10-11 07:04