Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 4825B200C30 for ; Tue, 21 Feb 2017 03:21:49 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 46A7B160B76; Tue, 21 Feb 2017 02:21:49 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 8120F160B73 for ; Tue, 21 Feb 2017 03:21:48 +0100 (CET) Received: (qmail 7246 invoked by uid 500); 21 Feb 2017 02:21:47 -0000 Mailing-List: contact notifications-help@groovy.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@groovy.apache.org Delivered-To: mailing list notifications@groovy.apache.org Received: (qmail 7237 invoked by uid 99); 21 Feb 2017 02:21:47 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Feb 2017 02:21:47 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 36E431A7BAD for ; Tue, 21 Feb 2017 02:21:47 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -1.999 X-Spam-Level: X-Spam-Status: No, score=-1.999 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, RP_MATCHES_RCVD=-2.999] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id ZCd1pBTFOFtL for ; Tue, 21 Feb 2017 02:21:46 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id D38885F5F7 for ; Tue, 21 Feb 2017 02:21:45 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 85923E0436 for ; Tue, 21 Feb 2017 02:21:44 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 1C58624121 for ; Tue, 21 Feb 2017 02:21:44 +0000 (UTC) Date: Tue, 21 Feb 2017 02:21:44 +0000 (UTC) From: "Daniel Sun (JIRA)" To: notifications@groovy.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (GROOVY-8085) Exception in "finally" not caught by outer "try" MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 21 Feb 2017 02:21:49 -0000 [ https://issues.apache.org/jira/browse/GROOVY-8085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15875245#comment-15875245 ] Daniel Sun commented on GROOVY-8085: ------------------------------------ Since L1 has not been covered by exception table, so exception occurred in the the normal excution flow can not be handled, i.e. no error in the inner try block but failed in the finally block. I tried to add 99 / 0 to the inner try block to make it fail on purpose, then the exception can be handled properly. I guess some bug exists in StatementWriter(https://github.com/apache/groovy/blob/master/src/main/org/codehaus/groovy/classgen/asm/StatementWriter.java#L308), the range of try block seems not be recorded correctly... {code} public static void main(String[] args) { try { try { System.out.println("try!!!"); 99 / 0 } finally { 99 / 0 } } catch (Exception e) { System.out.println("catch!!!"); } } {code} > Exception in "finally" not caught by outer "try" > ------------------------------------------------ > > Key: GROOVY-8085 > URL: https://issues.apache.org/jira/browse/GROOVY-8085 > Project: Groovy > Issue Type: Bug > Affects Versions: 2.4.8 > Environment: linux > Reporter: Craig Silverstein > > I would expect the following code to print `caughtt`: > ``` > groovy -e 'try { try { true; } finally { 1 / 0 } } catch (e) { println "caughtt" }' > ``` > But instead, it prints: > ``` > Caught: java.lang.ArithmeticException: Division by zero > java.lang.ArithmeticException: Division by zero > at script_from_command_line.run(script_from_command_line:1) > ``` > Why is the exception, thrown by the `finally`, not being caught by the outer try/catch? -- This message was sent by Atlassian JIRA (v6.3.15#6346)