删除数据库条目和AngularJS。如果无法删除条目,我应该抛出异常吗?

时间:2016-09-20 21:01:46

标签: javascript ruby-on-rails angularjs exception-handling

所以我有一个AngualrJS应用程序,它充当单页面应用程序(SPA)。此SPA使用现有的Rails API来生成xhr请求,这些请求将数据库中的条目作为JSON返回。

我目前正在尝试编写一些代码来处理可能的服务器响应。想到的第一个是删除具有一对多关系的条目的请求。例如:

def Library < ActiveRecord::Base
  has_many books
end

将是我的Rails模型。在我的情况下,如果他们目前有书籍,我不允许用户销毁库。控制器将以某种适当的状态响应,可能是响应头中的标志。然后,该视图会向用户发出一条消息,表明该图书馆仍然有图书,并且在删除图书之前无法删除。

所以我的问题是关于异常处理。如果我要遵循经常的解释:

  

例外是针对例外情况。

我得出的结论是,这不应该是一个例外情况,因为预计用户偶尔会尝试删除带有书籍的图书馆。此外,该计划解释了这一点,并为此案例准备了一条信息。我不认为这是一个例外吗?

对于那些深入AngularJS的人,你何时在实践中实际使用异常?

另外,我认为值得注意的是,由于xhr请求的异步性,我使用promise-chaining来处理.then.catch$q.reject等异常我还是新手,并没有完全理解它与异常的关系。

1 个答案:

答案 0 :(得分:0)

我也不会将此作为例外处理。我的方法是在服务器端以警告级别记录它,并在客户端的视图中显示错误消息。

我不认为我是专家,但我认为如果它是一个高效的应用程序,异常应该永远不会在客户端显示为反馈,因为用户不应该被迫查看控制台来搜索错误。

如果错误是一个像您这样的错误,只显示错误消息。 如果它锚定在您的方法中并且仅出现在通常使用期间不应发生的情况下,则应该抛出异常以便您知道发生了什么。但您也应该在视图中为用户显示一些反馈。