This is something I do to emulate Log4j.  Examine the stack & find the 
first entry that does not contain ExceptionInfo as a classname.

call displayInfo() in your catch statement, or call displayInfo() 
whereever to track class, method, & line number.

note: this code is customized for this example, not taken verbatim from my 
code....

   - Mike Barber


class ExceptionInfo
{
   public void displayInfo()
   {
               // setup stack info
               Throwable t = new Throwable();
               StackTraceElement[] stackElements = t.getStackTrace();
               int line = 0;
               for (int i=0; i<stackElements.length; i++)
               {
                  StackTraceElement ste = stackElements[i];
                  String simpleClassName = 
_extractSimpleClassName(stackElements[i].getClassName());
                  // the first line to NOT have this class's name is the 
line we want
                  if (simpleClassName != null && 
!simpleClassName.equals("ExceptionInfo"))
                  {
                     line = i;
                     StackTraceElement steFirst = stackElements[line];
                     System.out.println(steFirst.toString());
                     break;
                  }
               }
    }

   private String _extractSimpleClassName(String fullClassName)
   {
      if ((null == fullClassName) || ("".equals(fullClassName)))
         return "";

      int lastDot = fullClassName.lastIndexOf('.');
      if (0 > lastDot)
         return fullClassName;

      return fullClassName.substring(++lastDot);
   }
}






Martijn Hinten <[EMAIL PROTECTED]> 
11/15/2005 01:42 PM
Please respond to
"Tapestry users" <[email protected]>


To
Tapestry users <[email protected]>
cc

Subject
How to get the name of the page that raised an exception?






I have overridden Tapestry's exceptionPresenter and provided my own 
subclass of org.apache.tapestry.error.ExceptionPresenter. In it's 
presentException method, is there any way to figure out the name of the 
page that raised the exception? I would like to show the exception in a 
friendly way, on the page that raised it.

I noticed that cycle.getPage().getPageName() does not return the name of 
the current page.

Thanks for any hints.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to