diff --git a/src/main/java/uk/ac/rhul/cs/javatester/CodeTester.java b/src/main/java/uk/ac/rhul/cs/javatester/CodeTester.java index 154d6763cc8cf2e5c6122cb52595fca723426dbe..251af0d947ca023c628748cd51407c8904be1741 100644 --- a/src/main/java/uk/ac/rhul/cs/javatester/CodeTester.java +++ b/src/main/java/uk/ac/rhul/cs/javatester/CodeTester.java @@ -461,7 +461,7 @@ public class CodeTester { Class<?> returnType, String methodName, Class<?>... params - ) throws BaseTester.FailedTestException, NoSuchMethodException { + ) throws BaseTester.FailedTestException { String staticString = isStatic ? "static " : ""; String className = getClassString(klass); @@ -469,24 +469,29 @@ public class CodeTester { getClassString(returnType) + " " + methodName + "(" + getClassParamsString(params) + ") "; - Method m = invasiveGetMethod(klass, methodName, params); + String baseErr = + "Could not find " + staticString + "method in " + className + + " with signature \n\n " + + methodSig; - if (!m.getReturnType().equals(returnType)) { - throw new BaseTester.FailedTestException( - "Could not find " + staticString + "method in " + className + - " with signature \n\n " + - methodSig + "\n\n" + - "A similar method was found, but the return types do not match." - ); - } + try { + Method m = invasiveGetMethod(klass, methodName, params); - if (isStatic != Modifier.isStatic(m.getModifiers())) { - throw new BaseTester.FailedTestException( - "Could not find " + staticString + "method in " + className + - " with signature\n\n " + - methodSig + "\n\n" + - "A similar method was found, but check whether it should be static or not." - ); + if (!m.getReturnType().equals(returnType)) { + throw new BaseTester.FailedTestException( + baseErr + "\n\n" + + "A similar method was found, but the return types do not match." + ); + } + + if (isStatic != Modifier.isStatic(m.getModifiers())) { + throw new BaseTester.FailedTestException( + baseErr + "\n\n" + + "A similar method was found, but check whether it should be static or not." + ); + } + } catch (NoSuchMethodException e) { + throw new BaseTester.FailedTestException(baseErr); } } diff --git a/src/test/java/uk/ac/rhul/cs/javatester/UnitTests.java b/src/test/java/uk/ac/rhul/cs/javatester/UnitTests.java index 6c36f6e2e7b860024c8fbc1443ac5286ab1bc7c6..ea885a362ed70990ad64dc38c7deff9663bef1cb 100644 --- a/src/test/java/uk/ac/rhul/cs/javatester/UnitTests.java +++ b/src/test/java/uk/ac/rhul/cs/javatester/UnitTests.java @@ -355,7 +355,7 @@ public class UnitTests { BaseTester tester = new BaseTester(ASSIGNMENT) { @SuppressWarnings("unused") public boolean testCheckMethod() - throws BaseTester.FailedTestException, NoSuchMethodException { + throws BaseTester.FailedTestException { CodeTester ct = new CodeTester(); Class<?> klass = ct.loadClass(ASSIGNMENT); ct.checkMethodSignature(