рд╕рдВрдХрд▓рди рдХреА рдХреЛрд╢рд┐рд╢ / рдкрдХрдбрд╝ / рдЕрдВрдд рдореЗрдВ JVM рдХреЗ рд▓рд┐рдП

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп


рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ, рдПрд▓рди рдХреАрдлрд░ 1 , рдПрдХ рдмреАрдорд╛ рд╡реНрдпрд╡рд╕рд╛рдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрдВрдкрдиреА, рдЧрд╛рдЗрдбрд╡реЗрдпрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ 2 рдХреЗ рдкреНрд░рдореБрдЦ рд╡рд╛рд╕реНрддреБрдХрд╛рд░ рд╣реИрдВред рдЕрднреА рднреА рдПрдХ рд╡рд░рд┐рд╖реНрда рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЧреЛрд╕реБ 3 рднрд╛рд╖рд╛ рдореЗрдВ рдХрд╛рдо рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрд▓рди рдиреЗ рднрд╛рд╖рд╛ рдХреЛ рдЬрд╛рд╡рд╛ рдмрд╛рдЗрдЯрдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдореБрджреНрджреЛрдВ рд╕реЗ рдирд┐рдкрдЯрд╛ред

рдпрд╣ рд▓реЗрдЦ 2009 рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЬреЗрд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг 1.6 рдореЗрдВ / рдЕрдВрдд рдореЗрдВ рдХреЛрд╢рд┐рд╢ / рдкрдХрдбрд╝рдиреЗ / рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИред рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рд╛рде рд╣реА рдмрд╛рдЗрдЯ рдХреЛрдб рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╢реАрдЯ рдХрдЯ рдХреЗ рдиреАрдЪреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ SCJP рдХреЗ рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИред

рдЬреЗрд╡реАрдПрдо рдХреЗ рдЗрдВрдЯрд░реНрди


рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рдЬрд┐рди рдЪреАрдЬреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣рдорд╛рд░реА "рд╣реЛрдо" рднрд╛рд╖рд╛ рдХреЛ рдЬрд╛рд╡рд╛ рдмрд╛рдЗрдЯрдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реИред (рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП: рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рд╣рдо рдХрдм рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рд▓рдЧрднрдЧ рднреАред рднрд▓реЗ рд╣реА рдпрд╣ рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛ред) рдордЬреЗрджрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЬреЗрд╡реАрдПрдо рдХреЗ рдЗрдирд╕рд╛рдЗрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдЬрд╛рдП, рд╕рд╛рде рд╣реА рдЕрдкрдиреА рднрд╛рд╖рд╛ рдХреЗ рд╕рднреА рдХрдордмрдЦреНрдд рддреЗрдЬ рдХреЛрдиреЛрдВ рдХреЛ рдвреВрдВрдврд╛ рдЬрд╛рдПред рд▓реЗрдХрд┐рди рд╕рднреА "рдордЬрд╝реЗрджрд╛рд░" рдФрд░ рддреЗрдЬ рдХреЛрдиреЛрдВ рдореЗрдВ рдСрдкрд░реЗрдЯрд░реЛрдВ рд╕реЗ рдЖрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдХреЛрд╢рд┐рд╢ / рдкрдХрдбрд╝ / рдЕрдВрдд рдореЗрдВред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдмрд╛рд░, рдореИрдВ рджрд░реНрд╢рди рдпрд╛ рдЪрдкрд▓рддрд╛ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдЬреЗрд╡реАрдПрдо рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд░реВрдВрдЧрд╛, рдЬрд╣рд╛рдВ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред

рдпрджрд┐ рджреЛ рд╕рдкреНрддрд╛рд╣ рдкрд╣рд▓реЗ рдЖрдкрдиреЗ рдореБрдЭрд╕реЗ рдЕрдВрддрддрдГ рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрд╛, рддреЛ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдХрд┐ рдЙрдирдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг JVM рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдпрд╣ рднрд╛рд╖рд╛ рдХрд╛ рдореВрд▓ рднрд╛рдЧ рд╣реИ, рдЗрд╕реЗ рдмрд┐рд▓реНрдЯ-рдЗрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛? рдЬрдм рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рддреЛ рдореЗрд░реЗ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП: рдирд╣реАрдВ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдЦрд┐рд░рдХрд╛рд░ рдХреЛрд╢рд┐рд╢реЛрдВ рдпрд╛ рд╕рдВрдмрджреНрдз рдХреИрдЪ-рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рдж рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдЬрдЧрд╣реЛрдВ рдкрд░ рдмрд╕ рдмреНрд▓реЙрдХ рдХрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпреЗ рдмреНрд▓реЙрдХ "рдХреИрдЪ (рдереНрд░реЛрдмреЗрдмрд▓)" рдореЗрдВ рд▓рд┐рдкрдЯреЗ рд╣реБрдП рд╣реИрдВ, рдЬреЛ рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рдЦрддреНрдо рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджреЗрдВрдЧреЗред рдЬреЛ рдХреБрдЫ рднреА рд╢реЗрд╖ рд╣реИ рд╡рд╣ рдЕрдкрд╡рд╛рдж рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдореЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПред рд╡реИрд╕реЗ рдХреИрд╕реЗ? (рдПрдХ рдЫреЛрдЯрд╛ рдЪреЗрддрд╛рд╡рдиреА: JVM 1.6 рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЦрд┐рд░рдХрд╛рд░ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП, рдкреВрд░реНрдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рдмрдЬрд╛рдп, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рд╕рдмрд░реВрдЯреАрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рд╕рдВрд╕реНрдХрд░рдг 1.6 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред)

рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдереЛрдбрд╝рд╛ рдкреАрдЫреЗ рд╣рдЯреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЬреЗрд╡реАрдПрдо рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рдЙрдирдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд▓реЙрдХ / рдХреЛрд╢рд┐рд╢ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рд╕рднреА рдХреЛ рдпрд╣ рдХрд╣рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ "рдмрд┐рдВрджреБ A рдФрд░ рдмрд┐рдВрджреБ B рдХреЗ рдмреАрдЪ, E рдХрд╛ рдХреЛрдИ рднреА рдЕрдкрд╡рд╛рдж рдмрд┐рдВрджреБ C рдкрд░ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП"ред рдЖрдкрдХреЛ рдЗрди рдШреЛрд╖рдгрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХрдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЬрдм рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкрд╡рд╛рдж рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ JVM рдЕрдкрдиреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдпреБрдХреНрдд рдХреИрдЪ рдмреНрд▓реЙрдХ рдХреЛ рдЦреЛрдЬ рд▓реЗрдЧрд╛ред

рдПрдХ рдХреЛрд╢рд┐рд╢ / рдкрдХрдбрд╝ рдмреНрд▓реЙрдХ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг


рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

public void simpleTryCatch() { try { callSomeMethod(); } catch (RuntimeException e) { handleException(e); } } 

рдЙрд╕рдХреЗ рд▓рд┐рдП, рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдмрд╛рдЗрдЯрдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред (рдореИрдВ JVM рддрдВрддреНрд░ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдореВрд▓реНрдп рдЙрдкрдХрд░рдг, ASM рдПрдХреНрд▓рд┐рдкреНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдкреНрд░рд╛рд░реВрдкрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХреЛрдб рдкрдврд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред "L0" рдФрд░ рдЬреИрд╕реЗ рдХреЛрдб рд▓реЗрдмрд▓ рд╣реИрдВред)

 public simpleTryCatch()V TRYCATCHBLOCK L0 L1 L2 java/lang/RuntimeException L0 ALOAD 0 INVOKEVIRTUAL test/SimpleTryCatch.callSomeMethod()V L1 GOTO L3 L2 ASTORE 1 ALOAD 0 ALOAD 1 INVOKEVIRTUAL test/SimpleTryCatch.handleException(Ljava/lang/RuntimeException;)V L3 RETURN 

рдЗрд╕рд▓рд┐рдП, рд╣рдо рдкреВрд░реЗ рд╕реНрдЯреЗрдЯ рдмреНрд▓реЙрдХ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ (рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ GOTO рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдирд╣реАрдВ) рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ, рдФрд░ RuntimeException рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, L2 рдХреЛ рдХрдВрдЯреНрд░реЛрд▓ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдкреНрд░рдпрд╛рд╕ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреИрдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдкрд░ рдХреВрджрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ RuntimeException рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЕрдкрд╡рд╛рдж рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕реЗ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рдкреЙрдЗрдВрдЯрд░ рдХреЛ "рдЗрд╕" рдФрд░ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рдЕрдкрд╡рд╛рдж рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣реИрдВрдбрд▓рдПрдХреНрд╕реИрдкреНрд╢рди рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╢реЗрд╖ рдХреЛрдб рдХреЛ рдЕрдВрдд рддрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреИрдЪ рдмреНрд▓реЙрдХ рд╣реЛрддрд╛, рддреЛ рд╣рдо рдЗрд╕реЗ рдХреВрджрддреЗред

рдХреЛрд╢рд┐рд╢ / рдкрдХрдбрд╝ / рдЕрдВрдд рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдмреНрд▓реЙрдХ


рдЕрдм рдЕрдВрдд рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмреНрд▓реЙрдХ рдФрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреИрдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдмрд╛рдЗрдЯрдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рдВрдЪрд┐рдд рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВ:

 public void tryCatchFinally(boolean arg) { try { callSomeMethod(); if (arg) { return; } callSomeMethod(); } catch (RuntimeException e) { handleException(e); } catch (Exception e) { return; } finally { callFinallyMethod(); } } 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕реНрдкрд╖реНрдЯ рдмрд╛рдЗрдЯ рдХреЛрдб рдорд┐рд▓рддреЗ рд╣реИрдВ:

 public tryCatchFinally(Z)V TRYCATCHBLOCK L0 L1 L2 java/lang/RuntimeException TRYCATCHBLOCK L3 L4 L2 java/lang/RuntimeException TRYCATCHBLOCK L0 L1 L5 java/lang/Exception TRYCATCHBLOCK L3 L4 L5 java/lang/Exception TRYCATCHBLOCK L0 L1 L6 TRYCATCHBLOCK L3 L7 L6 TRYCATCHBLOCK L5 L8 L6 L0 ALOAD 0 INVOKEVIRTUAL test/SimpleTryCatch.callSomeMethod()V L9 ILOAD 1 IFEQ L3 L1 ALOAD 0 INVOKEVIRTUAL test/SimpleTryCatch.callFinallyMethod()V L10 RETURN L3 ALOAD 0 INVOKEVIRTUAL test/SimpleTryCatch.callSomeMethod()V L4 GOTO L11 L2 ASTORE 2 L12 ALOAD 0 ALOAD 2 INVOKEVIRTUAL test/SimpleTryCatch.handleException(Ljava/lang/RuntimeException;)V L7 ALOAD 0 INVOKEVIRTUAL test/SimpleTryCatch.callFinallyMethod()V GOTO L13 L5 ASTORE 2 L8 ALOAD 0 INVOKEVIRTUAL test/SimpleTryCatch.callFinallyMethod()V RETURN L6 ASTORE 3 ALOAD 0 INVOKEVIRTUAL test/SimpleTryCatch.callFinallyMethod()V ALOAD 3 ATHROW L11 ALOAD 0 INVOKEVIRTUAL test/SimpleTryCatch.callFinallyMethod()V L13 RETURN 

рддреЛ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ? (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓реЗрдмрд▓ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдорд╛рдВрдХрд┐рдд рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдереЗ, рди рдХрд┐ рд╡реЗ рдХреЛрдб рдореЗрдВ рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдереЗред) рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рджреЛрдиреЛрдВ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдмреНрд▓реЙрдХ рдЕрдм рджреЛ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИрдВ: L0 рд╕реЗ L1 рдФрд░ L3 рд╕реЗред рд╕реЗ L4 рддрдХред рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реБрдЖ рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдХрд╛рд░рдг рдПрд▓ 1 рдФрд░ рдПрд▓ 3 рдХреЗ рдмреАрдЪ рдЖрдЦрд┐рд░рдХрд╛рд░ рдмреНрд▓реЙрдХ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдХрд┐ рдЕрдВрддрдд: рдмреНрд▓реЙрдХ рд╕реЗ рдлреЗрдВрдХреЗ рдЧрдП рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдПрдХ рд╣реА рдХреЛрд╢рд┐рд╢ рдХреЗ рдмрдпрд╛рди рд╕реЗ рдЬреБрдбрд╝реЗ рдкрдХрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд▓реЙрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рдВрдмрдВрдзрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЕрдкрд╡рд╛рдж рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдЕрдкрд╡рд╛рдж рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдПрдХ рдХреЛрд╢рд┐рд╢ рдмрдпрд╛рди рд╕реЗ рдпрд╛ рдХреИрдЪ рдмреНрд▓реЙрдХ рд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рдмреНрд▓реЙрдХ рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рд╕рдорд╛рди рдЕрдВрддрддрдГ рдмреНрд▓реЙрдХ рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХреЗ рдЧрдП рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдирд╣реАрдВ рдкрдХрдбрд╝реЗрдВрдЧреЗред рдЗрд╕ рддрд░рд╣ рдХреА рддреАрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдереАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрдд рдореЗрдВ, рдЯреНрд░рд╛рдИ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдбрд╛рд▓рд╛ рдЧрдпрд╛, рдХреИрдЪ (рдПрдХреНрд╕реЗрдкреНрд╢рди) рдмреНрд▓реЙрдХ рдореЗрдВ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдХрд░ рднреА рдЖрд╢реНрдЪрд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдЦрд┐рд░рдХрд╛рд░ рдХреЛрдб 5 (рдкрд╛рдВрдЪ) рдмрд╛рд░ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдЕрдВрдд рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд, рдХреЛрд╢рд┐рд╢ рдмреНрд▓реЙрдХ рдХреЗ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрд▓ 1 рдФрд░ рдПрд▓ 3 рдХреЗ рдмреАрдЪ рд╣реЛрддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рд╣реЛрддрд╛ рд╣реИ: рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХреИрдЪ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрд╛рдж рдореЗрдВ рдмрд╛рдХреА рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреВрджрддрд╛ рд╣реИред (рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдЕрдЧрд▓реЗ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдЕрдВрдд рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред) рджреВрд╕рд░реА рдмрд╛рд░ рдмреНрд▓реЙрдХ рдореЗрдВ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╕реЗ рдкрд╣рд▓реЗ рддреАрд╕рд░реА рдмрд╛рд░ рдпрд╣ L8 рдФрд░ L6 рдХреЗ рдмреАрдЪ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдЪреМрдереА рдмрд╛рд░ рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ L6 рдФрд░ L11 рдХреЗ рдмреАрдЪ рдХреЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдЕрдкрд╡рд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ: рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рдХреЛ рдХрд┐рд╕реА рдмреНрд▓реЙрдХ рдпрд╛ рдХрд┐рд╕реА рднреА рдкрдХрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдлреЗрдВрдХреЗ рдЧрдП рдЕрдкрд╡рд╛рдж рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдкрд╡рд╛рдж рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рдерд╛, рдЕрдВрдд рдореЗрдВ рдмрдпрд╛рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЕрдкрд╡рд╛рдж рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрддрд┐рдо рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ, рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрдд рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИред

рдпрджрд┐ рд╣рдордиреЗ рдкреНрд░рдпрд╛рд╕ / рдХреИрдЪ рдпрд╛ рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рд╕рдм рдХреБрдЫ рднреА рдЕрдЬреАрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рдпрд╛рд╕ рдмреНрд▓реЙрдХ рдХреЗ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдФрд░ рдмрд╛рд╣рд░реА рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЕрдкрд╡рд╛рдж рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЖрдВрддрд░рд┐рдХ рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХрд╛ рдЧрдпрд╛ рдЕрдкрд╡рд╛рдж рдЕрдВрдд рдореЗрдВ рдмрд╛рд╣рд░реА рдХреИрдЪ рдФрд░ рдЕрдВрдд рдореЗрдВ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдкрдХрдбрд╝рд╛ рдЬрд╛рдП, рдФрд░ рдмрд╛рд╣рд░реА рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХрд╛ рдЧрдпрд╛ рдЕрдкрд╡рд╛рдж рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдкрдХрдбрд╝рд╛ рдЬрд╛рдПред рдЕрдм рдЖрдк рд╢рд╛рдпрдж рдпрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдиреЗ рд╕реЗрдЯ рдХреЗ рдЯреЗрдмрд▓ рдХреЛ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдФрд░ рдХреИрд╕реЗ рдкреЙрдкреБрд▓реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдиреЗ рдХреНрдпрд╛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред

рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП, рдХреИрд╕реЗ рдЬреЗрд╡реАрдПрдо рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдиреЗ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдВрдд рдореЗрдВ рдмрдпрд╛рди рдХреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдЪрд┐рдкрдХрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдЗрд╕ рдХрд╛рдо рдХреЛ рдХрд░рдиреЗ рд╕реЗ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдереЛрдбрд╝рд╛ рдХрдард┐рди рдмрдирд╛ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЬреЗрд╡реАрдПрдо рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реА рднрд╛рд╖рд╛ рдмрдирд╛рддреЗ рд╣реИрдВред

рдХрд╕реНрдЯрдо рдЙрджрд╛рд╣рд░рдг


рдпрд╣ рд╕рдордЭрдирд╛ рдХрд┐ рд╕рдВрдХрд▓рдХ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреБрдЫ рдЧреИрд░-рдорд╛рдирдХ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 try { return "foo"; } finally { return "bar"; } 

рдкрд░рд┐рдгрд╛рдо "рдмрд╛рд░" рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрдд рдореЗрдВ рд╡рд┐рд╡рд░рдг рдХреЛ рд╡рд╛рдкрд╕реА рд╡рд┐рд╡рд░рдг рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рд╕реЗ рд╡рд╛рдкрд╕реА рдХреЛ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХреЛрд╢рд┐рд╢ рдмреНрд▓реЙрдХ рд╕реЗ рд╡рд╛рдкрд╕реА рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред

 String value = "foo"; try { return value; } finally { value = "bar"; } 

рдкрд░рд┐рдгрд╛рдо "рдлреВ" рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдХреЛ рдЕрдВрддрддрдГ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╣рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред (рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдпрд╣ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЖрдк рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред) рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рдореЗрдВ "рдорд╛рди" рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

 while(true) { try { return "foo"; } finally { break; } } return "bar"; 

рдкрд░рд┐рдгрд╛рдо "рдмрд╛рд░" рд╣реЛрдЧрд╛ред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдереА, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рддрд╛рд░реНрдХрд┐рдХ рд╣реИ рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдмреНрд░реЗрдХ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдмрд╛рдпреЛрдЯреЗрдХ рдореЗрдВ рд╕рд┐рд░реНрдл рдЧреЛрдЯреЛ рд╣реИред рдпрд╛рдиреА рдЬрдм рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рдХреЛ рдЖрдВрддрд░рд┐рдХ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ GOTO рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ RETURN рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд▓реВрдк рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИред (рд╡рд╣реА рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдЬрд╛рд░реА рдмрдпрд╛рди рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИред)

рдирд┐рд╖реНрдХрд░реНрд╖


рд╣рдорд╛рд░реЗ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рдХрд╛рд░рдг рдЕрдВрддрддрдГ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рд░рд┐рдЯрд░реНрди, рдмреНрд░реЗрдХ рдФрд░ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ C # рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред (рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрдЪреНрдЫреА рдХрдВрдкрдиреА рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдПрдХрддреНрд░ рд╣реБрдИ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдРрд╕рд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИред)

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдпрд╣ рд▓реЗрдЦ рд╢рд┐рдХреНрд╖рд╛рдкреНрд░рдж рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдореЗрд░реА рдпреЛрдЬрдирд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдиреЛрдЯреНрд╕ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ рдЬреЛ рдХрд┐ рд╣рдо рдмрд╛рдпрдЯреЗрдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╕рдордп рд╕рд╛рдордирд╛ рдХрд░рддреЗ рдереЗред рд╡реЗ рджреЛрдиреЛрдВ рд╕реАрдзреЗ рдЬреЗрд╡реАрдПрдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдВрдЧреЗ, рдФрд░ рд╣рдорд╛рд░реА рднрд╛рд╖рд╛ рдФрд░ рдЬрд╛рд╡рд╛ рдХреЗ рдмреАрдЪ рд╡рд┐рднрд┐рдиреНрди рдЕрд╕рдВрдЧрддрд┐рдпреЛрдВ, рдЬреИрд╕реЗ рдХрд┐ рдХреНрд▓реЛрдЬрд░, рдПрдХреНрд╕рдЯрд░реНрдирд▓ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдЬреЗрдирд░рд┐рдХред

рд╢рдмреНрджрдХреЛрд╖


subroutine = рдЙрдк-рджрд┐рдирдЪрд░реНрдпрд╛
рдХрдерди = рдХрдерди
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди = inlining
рдЕрдкрд╡рд╛рдж = рдЕрдкрд╡рд╛рдж
рдмрд╛рд╣рд░реА рдлрд╝рдВрдХреНрд╢рди = рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ = рд╡рд┐рд╕реНрддрд╛рд░ рдлрд╝рдВрдХреНрд╢рди = рдорд┐рдХреНрд╕рд┐рди

рд╕рдВрджрд░реНрдн


[рез] devblog.guidewire.com/author/akeefer
[реи] www.guidewire.com
[рей] gosu-lang.org

Source: https://habr.com/ru/post/In212759/


All Articles