/*******************************************************************************
* Copyright (c) 2009, 2017 Mountainminds GmbH & Co. KG and Contributors
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Marc R. Hoffmann - initial API and implementation
*
*******************************************************************************/
package org.jacoco.core.test.validation.targets;
import static org.jacoco.core.test.validation.targets.Stubs.ex;
import static org.jacoco.core.test.validation.targets.Stubs.f;
import static org.jacoco.core.test.validation.targets.Stubs.nop;
import org.jacoco.core.test.validation.targets.Stubs.StubException;
/**
* This target produces exception based control flow examples.
*/
public class Target03 {
public static void main(String[] args) {
try {
implicitNullPointerException(null);
} catch (NullPointerException e) {
}
try {
implicitException();
} catch (StubException e) {
}
try {
explicitException();
} catch (StubException e) {
}
noExceptionTryCatch();
implicitExceptionTryCatch();
implicitExceptionTryCatchAfterCondition();
explicitExceptionTryCatch();
noExceptionFinally();
try {
explicitExceptionFinally();
} catch (StubException e) {
}
try {
implicitExceptionFinally();
} catch (StubException e) {
}
}
private static void implicitNullPointerException(int[] a) {
nop(); // $line-implicitNullPointerException.before$
a[0] = 0; // $line-implicitNullPointerException.exception$
nop(); // $line-implicitNullPointerException.after$
}
private static void implicitException() {
nop(); // $line-implicitException.before$
ex(); // $line-implicitException.exception$
nop(); // $line-implicitException.after$
}
private static void explicitException() {
nop(); // $line-explicitException.before$
throw new StubException(); // $line-explicitException.throw$
}
private static void noExceptionTryCatch() {
nop(); // $line-noExceptionTryCatch.beforeBlock$
try {
nop(); // $line-noExceptionTryCatch.tryBlock$
} catch (StubException e) { // $line-noExceptionTryCatch.catch$
nop(); // $line-noExceptionTryCatch.catchBlock$
} // $line-noExceptionTryCatch.catchBlockEnd$
} // $line-noExceptionTryCatch.afterBlock$
private static void implicitExceptionTryCatch() {
nop(); // $line-implicitExceptionTryCatch.beforeBlock$
try {
nop(); // $line-implicitExceptionTryCatch.before$
ex(); // $line-implicitExceptionTryCatch.exception$
nop(); // $line-implicitExceptionTryCatch.after$
} catch (StubException e) { // $line-implicitExceptionTryCatch.catch$
nop(); // $line-implicitExceptionTryCatch.catchBlock$
} // $line-implicitExceptionTryCatch.catchBlockEnd$
} // $line-implicitExceptionTryCatch.afterBlock$
private static void implicitExceptionTryCatchAfterCondition() {
if (f()) { // $line-implicitExceptionTryCatchAfterCondition.condition$
return;
}
try {
ex(); // $line-implicitExceptionTryCatchAfterCondition.exception$
} catch (StubException e) {
nop(); // $line-implicitExceptionTryCatchAfterCondition.catchBlock$
}
}
private static void explicitExceptionTryCatch() {
nop(); // $line-explicitExceptionTryCatch.beforeBlock$
try {
nop(); // $line-explicitExceptionTryCatch.before$
throw new StubException(); // $line-explicitExceptionTryCatch.throw$
} catch (StubException e) { // $line-explicitExceptionTryCatch.catch$
nop(); // $line-explicitExceptionTryCatch.catchBlock$
} // $line-explicitExceptionTryCatch.catchBlockEnd$
} // $line-explicitExceptionTryCatch.afterBlock$
private static void noExceptionFinally() {
nop(); // $line-noExceptionFinally.beforeBlock$
try {
nop(); // $line-noExceptionFinally.tryBlock$
} finally { // $line-noExceptionFinally.finally$
nop(); // $line-noExceptionFinally.finallyBlock$
} // $line-noExceptionFinally.finallyBlockEnd$
} // $line-noExceptionFinally.afterBlock$
private static void implicitExceptionFinally() {
nop(); // $line-implicitExceptionFinally.beforeBlock$
try {
nop(); // $line-implicitExceptionFinally.before$
ex(); // $line-implicitExceptionFinally.exception$
nop(); // $line-implicitExceptionFinally.after$
} finally { // $line-implicitExceptionFinally.finally$
nop(); // $line-implicitExceptionFinally.finallyBlock$
} // $line-implicitExceptionFinally.finallyBlockEnd$
} // $line-implicitExceptionFinally.afterBlock$
private static void explicitExceptionFinally() {
nop(); // $line-explicitExceptionFinally.beforeBlock$
try {
nop(); // $line-explicitExceptionFinally.before$
throw new StubException(); // $line-explicitExceptionFinally.throw$
} finally { // $line-explicitExceptionFinally.finally$
nop(); // $line-explicitExceptionFinally.finallyBlock$
} // $line-explicitExceptionFinally.finallyBlockEnd$
} // $line-explicitExceptionFinally.afterBlock$
}