Ловля java.lang.Error - PullRequest
       10

Ловля java.lang.Error

0 голосов
/ 24 марта 2011

Я разрабатываю Javame-фреймворк для J2me и Blackberry.Я читаю тип (bb или j2me) с устройства, а затем загружаю нужные классы в зависимости от обнаруженного устройства.

Только я получаю java.lang.error при выполнении следующего кода.Я думаю, это потому, что я использую пакет blackberry в KuixCanvasBB, который не поддерживает j2me.Но есть ли способ отловить эту ошибку?

    KuixCanvas canvas;
        if(Settings.j2me)   {
            System.out.println("j2me");
            canvas = new KuixCanvasJ2me(this, isFullscreen());
        }
        else    {
            System.out.println("BB");
            try {
            canvas = new KuixCanvasBB(this, isFullscreen());
                //canvas = new KuixCanvasJ2me(this, isFullscreen());
            }
            catch (java.lang.Error e) {
                canvas=null;
            }
        }

Я по-прежнему получаю сообщение об ошибке при выполнении приведенного выше кода:

java.lang.Error: ClassFormatError: 154
 - java.lang.Class.invoke_verify(), bci=0
 - java.lang.Class.initialize(), bci=117
 - java.lang.Class.initialize(), bci=139
 - java.lang.Class.forName(), bci=0

Можно ли перехватить эту ошибку без закрытия приложения?

1 Ответ

3 голосов
/ 24 марта 2011

Поскольку многие виртуальные машины J2ME проверяют весь код, прежде чем запускать что-либо, такой код может быть легко отклонен даже при установке на многих устройствах.

Возможно, более безопасным решением будет принятие решения во время сборки, поскольку выВ любом случае, для окончательной сборки понадобятся отдельные файлы .jar.

Причина, по которой вы получаете ошибку, возможно, заключается в том, что ссылки на другие классы разрешаются, как только метод вводится в JVM.

...