viperson 2010-05-06 22:23
浏览 267
已采纳

Struts怎么捕获NumberFormatException

大家好,我试了两天
 Struts2.18  myEclipse8.0

我自定义了一个类型转换器[code="java"]

public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
Integer inte=null;
for(int i=0;i<arg1.length;i++)
{
String [] tempStr = arg1[i].split("-");
StringBuilder sb = new StringBuilder();
for(int j=0;j< tempStr.length;j++)
sb.append(tempStr[j]);

        inte =new Integer(sb.toString());


    }

    return inte;}

[/code]
当我传入正确的参数时 他能正常的工作 但是当我输入字母时 如aaa 时.后台就会打印一大条的错误
ognl.MethodFailedException: Method "setId" failed for object com.wugang.User@1e9c82e [java.lang.NoSuchMethodException: com.wugang.User.setId([Ljava.lang.String;)]
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1265)
at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1454)
at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:28)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2225)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301).....
java.lang.NoSuchMethodException: com.wugang.User.setId([Ljava.lang.String;)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1206)
at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1454)
at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:28)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2225)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.ASTChain.setValueBody(ASTChain.java:227)

当然 我应用了conversionError 拦截器 而且filederrors 字段里有错误的信息 但为什么后台还有错误呢 不是被拦截器捕获了后台就应该没有错了么 还是我自己理解错了 求大家帮帮我

  • 写回答

4条回答 默认 最新

  • 拽拽的初行者 2010-05-07 13:01
    关注

    [color=blue][b]捕获异常,然后抛出[/b][/color]
    [code="java"]try{
    inte =new Integer(sb.toString());

    }catch(NumberFormatException numb){
    throw new com.opensymphony.xwork2.conversion.TypeConversionException("Failed")
    }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 cplex运行后参数报错是为什么
  • ¥15 之前不小心删了pycharm的文件,后面重新安装之后软件打不开了
  • ¥15 vue3获取动态宽度,刷新后动态宽度值为0
  • ¥15 升腾威讯云桌面V2.0.0摄像头问题
  • ¥15 关于Python的会计设计
  • ¥15 聚类分析 设计k-均值算法分类器,对一组二维模式向量进行分类。
  • ¥15 stm32c8t6工程,使用hal库
  • ¥15 找能接spark如图片的,可议价
  • ¥15 关于#单片机#的问题,请各位专家解答!
  • ¥15 博通raid 的写入速度很高也很低