现在想把错误的详细信息也抛给前台,然后在前台的框架里分别显示我定义的信息和真正的异常信息,不知throw new Exception()可否做到,在抛的时候同时取得异常信息?期待高人回答

解决方案 »

  1.   

    throw new Exception("",e);
    e是你捕获到的异常,""中你可以补充对异常的说明
      

  2.   


    catch(Exception e){
    throw new Exception("xxxx"+e.getMessage);
    }
      

  3.   

    比如下面这段代码:
    Object obj = null;
    try{
    obj.equals("aa");
    }catch(Exception ex){
    // ex.printStackTrace();
    throw new Exception("我定义的信息====="+ex.getMessage().toString());
    }明显的空指针,这样抛出来得到的只是:我定义的信息=====java.lang.NullPointerException。
    我现在想要得到的是下边这一大串:
    java.lang.Exception: 我定义的信息=====java.lang.NullPointerException
    at net.greatsoft.chss.ro.archive.MemberRO.findMemberList(MemberRO.java:122)
    at net.greatsoft.chss.ro.archive.MemberRO$$FastClassByCGLIB$$bc8c5f93.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
    at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:692)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
    at net.greatsoft.framework.transaction.TransactionManagerAdvice.around(TransactionManagerAdvice.java:49)
    at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
    ........
      

  4.   

    “下面的一大串”是错误的出错栈信息。StatckTraceElement[] es=e.getStatckTrace();
    然后进行遍历。
      

  5.   

    根据不同的项目要求和Exception,你可以自己写自己的Exception类,然后在代码中抛出。
      

  6.   


    谢谢你的回答,我想在问一下,如果我现在取不到这个e呢,我没用catch,我用一个条件去判断,如果条件符合,我直接throw 异常,请问这样我能得到异常信息吗?
      

  7.   


    我现在就是自定义的exception,
    public class ServiceException extends Exception{ private static final long serialVersionUID = 1L;

    public ServiceException(){

    }

    public ServiceException(String msg){
    super(msg);
    }

    public ServiceException(String msg, Throwable ex){
    super(msg, ex);
    }

    public ServiceException(Throwable ex){
    super(ex);
    }
    }这是我的类,因为项目框架的关系 整个项目都没用到try...catch,全是用throw ,怎样才能得到异常消息呢