# Remove Unnecessary Thrown Exceptions on Method Signatures

# Description

Removes the following exceptions on method signatures:

  1. Exceptions that are subtypes of already thrown exceptions
  2. Exceptions that are thrown more than once
  3. Exceptions that are inheriting from RuntimeException

# Benefits

Improves the readability by removing code that adds no information on the method signature.

# Tags

# Code Changes

# Declaring a throws exception whose parent type is already thrown

Pre

public void throwingChildAndParent() throws ChildException, ParentException {
	...
}

Post

public void throwingChildAndParent() throws ParentException {
	...
}

# Declaring a throws exceptions more than once

Pre

public void throwingTheSameExceptionTwice() throws Exception, Exception {
	...
}

Post

public void throwingTheSameExceptionTwice() throws Exception {
	...
}

# Declaring a throws Unchecked exception

Pre

public void throwingRuntimeException() throws ArrayIndexOutOfBoundsException {
	...
}

Post

public void throwingRuntimeException() {
	...
}

Use a Java Refactoring Tool

Automate this Refactoring system-wide

You can apply this refactoring for free with the jSparrow Eclipse IDE plug-in.
Install the plug-in for Eclipse IDE: Eclipse Marketplace.

a drawn cute bird pointing at a graph that shows positive results

# Properties

Property Value
Rule ID RemoveUnnecessaryThrows
First seen in jSparrow version 2.7.0
Minimum Java version 1.1
Remediation cost 2 min
Links