2010/8/24 Adam Chlipala <[email protected]>:
> Vladimir Shabanov wrote:
>>
>> And there is another way to check DML errors -- another function dml'
>> can be adder which returns option string instead of error page, e.g.
>> result<- dml' (...);
>> case result of
>> None => return "ok"
>> Some e => return strcat("dberror: ", e)
>>
>
> I like this suggestion. The key issue is deciding which database errors
> should be returned in this way. An error like "lost connection to server"
> should still abort execution, IMO, since it's outside of the abstraction
> that Ur/Web is meant to present to the programmer. A corollary issue is
> which methods should be used with each database system's C library to filter
> out the appropriate errors.
I think that constraint violations should be returned (ideally with
name of constraint), other errors (except errors that Ur's runtime
can't handle -- like connection issues) can be just returned as string
so they still can be handled even without native Ur support.
Custom error form is also good thing -- it can be some
string->transaction page function referenced from .urp-file.
And there can be custom rpc-error handler, something like:
<body onError={set errorHappened true} ...>
_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur