Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何获取数据库中有错误的应用程序通知(例如StoredProcedure、view等)_.net_Sql Server_Database - Fatal编程技术网

.net 如何获取数据库中有错误的应用程序通知(例如StoredProcedure、view等)

.net 如何获取数据库中有错误的应用程序通知(例如StoredProcedure、view等),.net,sql-server,database,.net,Sql Server,Database,我在采访中被问到一个问题,我们正在开发一个WPF应用程序,它调用一些StoredPeocedure。如果在执行过程中StoredProcedure中出现错误,或者数据库中出现任何错误,我们现在如何在应用程序中,并将其优雅地显示给客户端 表示错误出现在服务器上的SQl中,应用程序应该知道如何显示该错误 我回答使用try-catch语句,但面试官没有接受这个答案。我用谷歌搜索了一下,但没有得到任何答案 有人能告诉我做这件事的合适方法吗?好吧,try/catch本身并没有多大作用,从DAL/DB/re

我在采访中被问到一个问题,我们正在开发一个WPF应用程序,它调用一些StoredPeocedure。如果在执行过程中StoredProcedure中出现错误,或者数据库中出现任何错误,我们现在如何在应用程序中,并将其优雅地显示给客户端

表示错误出现在服务器上的SQl中,应用程序应该知道如何显示该错误

我回答使用try-catch语句,但面试官没有接受这个答案。我用谷歌搜索了一下,但没有得到任何答案

有人能告诉我做这件事的合适方法吗?

好吧,try/catch本身并没有多大作用,从DAL/DB/repo层显示UI对话框肯定是不好的做法。我想:

  • 在DAL中,捕获预期的SQL异常并抛出UI预期的记录异常
  • 在UI层中,捕获抛出的异常,并向用户显示合适的对话框
当然,在这种情况下,用户界面应该能够捕捉到任何异常;简单地说,它可能会在预期(可预测)的例外情况下表现出更友好的面孔,并在意外情况下更加谨慎

一个更好的答案是:预先验证您的场景,这样您就不会期望出现异常了

但总的来说:永远不要害怕问面试官他们的想法;然后,您可以讨论每种方法的优点(而不是优点)。另外,千万不要认为面试官什么都知道。我会毫不犹豫地告诉面试官(很好,记住),他们在技术问题上错了。这可能是鬼鬼祟祟的,但面试官实际上可能在寻找一个在有人犯技术错误时不怕直言的人,因此在技术讨论中注入微妙的胡言乱语