Граница блока перехвата исключения байт-кода JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Граница блока перехвата исключения байт-кода Java

Сообщение Anonymous »

У меня есть класс, сгенерированный dex2jar, такой байт-код

Код: Выделить всё

  public boolean a(com.google.android.exoplayer2.metadata.Metadata);
descriptor: (Lcom/google/android/exoplayer2/metadata/Metadata;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
0: iconst_0
1: istore_2
2: aload_1
3: getfield      #38                 // Field com/google/android/exoplayer2/metadata/Metadata.d:[Lcom/google/android/exoplayer2/metadata/Metadata$Entry;
6: astore        5
8: iload_2
9: aload         5
11: arraylength
12: if_icmpge     134
15: aload         5
17: iload_2
18: aaload
19: astore        5
21: aload         5
23: instanceof    #40                 // class com/google/android/exoplayer2/metadata/id3/CommentFrame
26: ifeq          128
29: aload         5
31: checkcast     #40                 // class com/google/android/exoplayer2/metadata/id3/CommentFrame
34: astore        5
36: ldc           #42                 // String iTunSMPB
38: aload         5
40: getfield      #46                 // Field com/google/android/exoplayer2/metadata/id3/CommentFrame.f:Ljava/lang/String;
43: invokevirtual #52                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
46: ifne          54
49: iconst_0
50: istore_3
51: goto          122
54: getstatic     #21                 // Field c:Ljava/util/regex/Pattern;
57: aload         5
59: getfield      #55                 // Field com/google/android/exoplayer2/metadata/id3/CommentFrame.g:Ljava/lang/String;
62: invokevirtual #59                 // Method java/util/regex/Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
65: astore        5
67: aload         5
69: invokevirtual #65                 // Method java/util/regex/Matcher.find:()Z
72: ifeq          49
75: aload         5
77: iconst_1
78: invokevirtual #69                 // Method java/util/regex/Matcher.group:(I)Ljava/lang/String;
81: bipush        16
83: invokestatic  #75                 // Method java/lang/Integer.parseInt:(Ljava/lang/String;I)I
86: istore_3
87: aload         5
89: iconst_2
90: invokevirtual #69                 // Method java/util/regex/Matcher.group:(I)Ljava/lang/String;
93: bipush        16
95: invokestatic  #75                 // Method java/lang/Integer.parseInt:(Ljava/lang/String;I)I
98: istore        4
100: iload_3
101: ifgt          109
104: iload         4
106: ifle          49
109: aload_0
110: iload_3
111: putfield      #27                 // Field a:I
114: aload_0
115: iload         4
117: putfield      #29                 // Field b:I
120: iconst_1
121: istore_3
122: iload_3
123: ifeq          128
126: iconst_1
127: ireturn
128: iinc          2, 1
131: goto          2
134: iconst_0
135: ireturn
136: astore        5
138: goto          49
Exception table:
from    to  target type
75   100   136   Class java/lang/NumberFormatException
109   120   136   Class java/lang/NumberFormatException
по моему мнению: следующей последней инструкцией блока try исключения должна быть инструкция запуска блока catch.
но это пример сломал мне голову, и логика верна!
try Block: от 75 до 120, catch Block: 136
Я хочу знать, есть ли какие-либо другие инструкции по оптимизации для Java-компилятора или не-Java-компилятора, подобные этому примеру.

Подробнее здесь: https://stackoverflow.com/questions/791 ... s-boundary
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Неперехваченное исключение из блока перехвата mysqli_sql_Exception
    Anonymous » » в форуме Php
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Из блока перехвата исключений кажется, что запись в файл не происходит.
    Anonymous » » в форуме C++
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Трассировка стека после перехвата исключения
    Anonymous » » в форуме C++
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous
  • Какие исключения Python обычно следует перехватывать, поскольку следует избегать широкого перехвата исключений
    Anonymous » » в форуме Python
    0 Ответы
    108 Просмотры
    Последнее сообщение Anonymous
  • Как хранить байт из Java в байт в PostgreSQL?
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»