In general, if we can determine that the state of the system is such that
going to a link will cause an exception, we should put a guard (an If())
around that link.

In general one should avoid code writing that throws exceptions.  In Scala,
using Option/Box allows you to conveniently wrap results that may or may not
be calculable.  Exceptions should only happen if something external to the
system fails (e.g., the RDBMS goes down).

On Wed, Oct 21, 2009 at 10:59 PM, Richard Hirsch <hirsch.d...@gmail.com>wrote:

> If we remove the link, the user won't have to get an exception which
> saves time and hassle.
>
> We could also send a notice message that the user can't be deleted,
> because it is the last admin user.
>
> D.
>
> On Thu, Oct 22, 2009 at 6:10 AM, Xuefeng Wu <ben...@gmail.com> wrote:
> > For example, in this case, users can not the last admin from pool, it's
> > business logic.
> > I think there're three ways:
> > 1. disable/hide menu(link)
> > We could check whether the function should be validate or not, and could
> > disable/hide it.
> >
> > 2. determine by 'if' or 'case' in Scala
> > and Lift provide S.error(msg)
> >
> > But some times it's not nature.
> >
> > 3. use exception when user do something wrong.
> >
> > I think the best way is exception when there's something wrong.
> > Exception could provide more information for Users and Developer.
> > And exception is more nature for programming.
> >
> > for example:
> > User exception:
> >    def deleteUserFromPool(in: Privilege) {
> >       //Delete current admin only if admin permissions by other users
> exist
> >    if(!isValidate)
> >      throw new Exception("No other admin users in pool!")
> >
> >      val userId = in.user.is
> >      in.delete_!
> >      Distributor ! Distributor.RefreshUser(userId)
> >    }
> >
> > Server check whether this operation is validate or not, if not throw
> > exception.
> >
> >  user if and S.error:
> >    def deleteUserFromPool(in: Privilege) {
> >        if(isValidate  ) {
> >              val userId = in.user.is
> >              in.delete_!
> >              Distributor ! Distributor.RefreshUser(userId)
> >        } else {
> >              S.error("No other admin users in pool!")
> >        }
> >
> >
> >
> >
> >
> > On Wed, Oct 21, 2009 at 9:07 PM, David Pollak <
> feeder.of.the.be...@gmail.com
> >> wrote:
> >
> >> On Tue, Oct 20, 2009 at 9:43 PM, Xuefeng Wu <ben...@gmail.com> wrote:
> >>
> >> > It's a pleasure.
> >> > @David,
> >> > Could Lift wrap business exception and show as notice or warning for
> >> users?
> >> >
> >>
> >> Sure... in what context?
> >>
> >>
> >> >
> >> >
> >> > On Wed, Oct 21, 2009 at 10:48 AM, Richard Hirsch <
> hirsch.d...@gmail.com
> >> > >wrote:
> >> >
> >> > > OK - why don't we leave it.
> >> > >
> >> > > Do you want to take another Jira item? What about ESME-101
> >> > > (https://issues.apache.org/jira/browse/ESME-101)?
> >> > >
> >> > > D.
> >> > >
> >> > > On Wed, Oct 21, 2009 at 2:50 AM, Xuefeng Wu <ben...@gmail.com>
> wrote:
> >> > > > Yes, It's easier. But most of time user will not delete the last
> >> admin,
> >> > > but
> >> > > > we always check this, it would wast most computer resource.
> >> > > >
> >> > > > On Tue, Oct 20, 2009 at 12:53 AM, Richard Hirsch <
> >> > hirsch.d...@gmail.com
> >> > > >wrote:
> >> > > >
> >> > > >> wouldn't it be easier to just remove the "delete" link when there
> is
> >> > > >> only one admin left?
> >> > > >>
> >> > > >> On Mon, Oct 19, 2009 at 5:32 PM, Xuefeng Wu <ben...@gmail.com>
> >> wrote:
> >> > > >> > I mean that give user a kindly warning message after he/she do
> >> wrong
> >> > > >> better
> >> > > >> > than disable the function.
> >> > > >> >
> >> > > >> >
> >> > > >> > On Mon, Oct 19, 2009 at 11:30 PM, Xuefeng Wu <ben...@gmail.com
> >
> >> > > wrote:
> >> > > >> >
> >> > > >> >> I think maybe it's better that we wrap the Exception after
> error
> >> > > cause,
> >> > > >> but
> >> > > >> >> not always check before user do.
> >> > > >> >>
> >> > > >> >>
> >> > > >> >> On Mon, Oct 19, 2009 at 5:37 PM, Richard Hirsch <
> >> > > hirsch.d...@gmail.com
> >> > > >> >wrote:
> >> > > >> >>
> >> > > >> >>> I committed everything (thanks)  but I added a comment about
> >> > > deleting
> >> > > >> >>> the last admin user.
> >> > > >> >>>
> >> > > >> >>> D.
> >> > > >> >>>
> >> > > >> >>
> >> > > >> >>
> >> > > >> >>
> >> > > >> >> --
> >> > > >> >> Scala中文社区:  http://groups.google.com/group/scalacn
> >> > > >> >>
> >> > > >> >
> >> > > >> >
> >> > > >> >
> >> > > >> > --
> >> > > >> > Scala中文社区:  http://groups.google.com/group/scalacn
> >> > > >> >
> >> > > >>
> >> > > >
> >> > > >
> >> > > >
> >> > > > --
> >> > > > Scala中文社区:  http://groups.google.com/group/scalacn
> >> > > >
> >> > >
> >> >
> >> >
> >> >
> >> > --
> >> > Scala中文社区:  http://groups.google.com/group/scalacn
> >> >
> >>
> >>
> >>
> >> --
> >> Lift, the simply functional web framework http://liftweb.net
> >> Beginning Scala http://www.apress.com/book/view/1430219890
> >> Follow me: http://twitter.com/dpp
> >> Surf the harmonics
> >>
> >
> >
> >
> > --
> > Scala中文社区:  http://groups.google.com/group/scalacn
> >
>



-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

Reply via email to