blob: 739999ac7032aa48a0bb61185e128487c2203caf [file] [log] [blame]
/*
* Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
* for details. All rights reserved. Use of this source code is governed by a
* BSD-style license that can be found in the LICENSE file.
*/
/**
* @assertion Execution of an on-catch clause on T catch (p1, p2) s of a try statement
* t proceeds as follows: The statement s is executed in the dynamic scope of the
* exception handler defined by the finally clause of t. Then, the current exception
* and active stack trace both become undefined.
* @description Checks that the statement s is executed in the dynamic scope of the
* exception handler defined by the finally clause by checking that the two arguments
* of a catch clause are indeed available within it along with all those declared in the
* enclosing scopes.
* @author kaigorodov
* @reviewer rodionov
*/
import "../../Utils/expect.dart";
void main() {
int executed=0;
var ex = new Exception("fail");
try {
throw ex;
} on Exception catch(e, st) {
executed+=1;
Expect.identical(ex, e);
Expect.isTrue(st != null);
} finally {
executed+=2;
}
Expect.equals(3, executed);
}