I'm trying to crystallize out some 'best practises' for Visualforce Page exception handling.
I think, at a minimum, a page should look something like this:
<apex:page controller="PageController">
<apex:pageMessages />
<apex:pageBlock rendered="{!NOT(HasFatalMessages)}" />
</apex:page>
- always present is
apex:pageMessages - when a fundamental misconfiguration is detected, the UI is hidden to prevent data entry
Then the controller class might look something like this:
public with sharing class PageController {
public Boolean getHasFatalMessages() {
return ApexPages.hasMessages(ApexPages.Severity.FATAL);
}
public PageController() {
try {
//check org configuration required
//for this page (for example, custom
//settings, field set members, etc)
} catch (SomeDomainLayerException e) {
ApexPages.addMessages(e);
}
}
}
I can't for the life of me work out how ApexPages.addMessages(e) determines severity. It always seems to be ApexPages.Severity.ERROR no matter what. How can I change that?
Or should I throw an uncaught exception to blow up the whole page, indicating bigger problems?




