BLL怎么跟UI层交互呢!最近看到有一种是BLL抛异常以及UI层捕获异常的!因为我在UI层不想写太多的代码!把所有的逻辑代码都BLL层来写!而我又不想像以前那种BLL返回一个常数然后在UI层来写所对应的信息!要是用BLL抛异常则会造成UI层每个事件操作都要TRY{}一次?这样在性能上可能会造成很大的影响?大家怎么写的?可以直接把BLL层的信息返回UI层?要是用BLL抛异常UI层去TRY怎么写会比较好的?或者说大家有什么更好的方法啊!
调试欢乐多
就像 TCP/IP 协议为 HTTP 协议提供支持因此 BLL 层实际上是不需要与 UI 层交互的
确实是这样的,它的作用只是按 UI 层的要求为其提供经包装的数据,或者,引发异常
你提到的从 BLL 返回一个常数,然后UI层来显示信息……实际上是没必要的。
.NET 推荐使用强类型的对象,比如枚举等。
至于从代码到自然语言的转化,这工作可以放到 UI 层来做:UI 就是用来做这项工作的;此外这还给 UI 提供了一定的自由(比如如果用户未登录,那提示语可以随时从“未知用户”改为“You are not identified”)。
不用太多的 try..catch
组织良好的程序里只有 在能明确意识到可能会出错的地方 才用 try..catch(如文件读取、数据库连接等),而且在这些位置应该使用异常捕获处理。那么基于这个逻辑,在其他不能明确意识到可能出现异常的位置,如果出现异常就意味着不合理。运行时异常甚至意味着程序有问题。
所以我建议尽可能地让异常暴露出来;如果没有必要,不要用 try..catch,这有助于(在测试中)发现问题。运行时,可以处理 ASP.NET 的 Application_Error 全局事件。
{
//在出现未处理的错误时运行的代码
//使用Transfer(),保留当前上下文
Server.Transfer("~/Error.aspx");
}
{
//在出现未处理的错误时运行的代码
//使用Transfer(),保留当前上下文
Server.Transfer("~/Error.aspx");
}