Как обработать исключение Java в Flex ..? - PullRequest
0 голосов
/ 03 мая 2011
         I have made the WSDL from java code using the Xfire framework,

Вот мой код Java ..

public class Test implements TestException {
    public void testException(String check) {
    List<String> list = new ArrayList<String>();
    list.add("ABC");
    list.add("XYZ");
    list.add("PQR");
    list.add("LMNOP");
    list.add("EFGH");
    list.add("Pqrst");

    try 
    {
        if(check(list,check))
            System.out.println(check);
    }
    catch (MyException e) 
    {
        e.printStackTrace();
    }
}

public boolean check(List<String> list,String check) throws MyException {
    if(list.contains(check))
        return true;
    else
        throw new MyException();
}
}

Класс исключения:

public class MyException extends Exception {
public MyException()
{

}

public String toString()
{
    return "Exception by My Exception.....";
}
}

* Гибкий код: *

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600">
<mx:WebService id="testService" wsdl="http://localhost:9090/ExceptionTest/xfire/Test?wsdl" showBusyCursor="true">
    <mx:operation name="testException" result="testExceptionRH(event)" fault="testExceptionFH(event)"/>
</mx:WebService>

<mx:Script>
    <![CDATA[
        import mx.rpc.events.FaultEvent;
        import mx.rpc.events.ResultEvent;

        protected function click_clickHandler(event:MouseEvent):void
        {
            testService.testException(showText.text).send;      
        }

        protected function testExceptionRH(event : ResultEvent) : void
        {
            messageLbl.text = "No Exception.....!!!!";          
        }

        protected function testExceptionFH(event : FaultEvent) : void
        {
            trace(event.fault.faultDetail);
            messageLbl.text = "Exception.....!!!!";
        }

    ]]>
</mx:Script>
<mx:Button x="163" y="70" label="Click" id="click" click="click_clickHandler(event)"/>
<mx:TextInput x="114" y="27" id="showText"/>
<mx:Label id="messageLbl" fontWeight="bold"  x="183" y="99"/> 

Теперь проблема заключается в том, что всякий раз, когда я посылаю объект, отличный от объекта в списке, произнесите «Amit», тогда он генерирует исключение вправои поэтому сообщение об ошибке должно отображаться, но я всегда получаю сообщение обработчика результатов, я проверяю логи tomcat, он показывает трассировку стека исключений (MyException),

Что не так я делаю .. ???

Пожалуйста, помогите, спасибо заранее

1 Ответ

1 голос
/ 03 мая 2011

вы уже поймали исключение в своем методе testException, поэтому оно не было передано в ваш интерфейс Flex.

вы должны обработать исключение (например, ведение журнала) в блоке перехвата, а затем выбросить его снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...