-
Notifications
You must be signed in to change notification settings - Fork 53
io microsphere util ExceptionUtils
Type: Class | Module: microsphere-java-core | Package: io.microsphere.util | Since: 1.0.0
Source:
microsphere-java-core/src/main/java/io/microsphere/util/ExceptionUtils.java
Exception Utilities class
public abstract class ExceptionUtils implements UtilsAuthor: Mercy
-
Introduced in:
1.0.0 -
Current Project Version:
0.1.10-SNAPSHOT
This component is tested and compatible with the following Java versions:
| Java Version | Status |
|---|---|
| Java 8 | ✅ Compatible |
| Java 11 | ✅ Compatible |
| Java 17 | ✅ Compatible |
| Java 21 | ✅ Compatible |
| Java 25 | ✅ Compatible |
try {
// some code that may throw an exception
} catch (Exception e) {
String stackTrace = ExceptionUtils.getStackTrace(e);
System.out.println(stackTrace);
}try {
// some code that throws an IOException
} catch (IOException e) {
RuntimeException re = ExceptionUtils.wrap(e, RuntimeException.class);
throw re;
}try {
// some code that throws an IllegalArgumentException
} catch (IllegalArgumentException e) {
MyCustomException myEx = ExceptionUtils.wrap(e, MyCustomException.class);
throw myEx;
}try {
// some code that may throw an exception
} catch (Exception e) {
RuntimeException re = ExceptionUtils.create(RuntimeException.class);
throw re;
}try {
// some code that may throw an exception
} catch (Exception e) {
RuntimeException re = ExceptionUtils.create(RuntimeException.class, "An error occurred");
throw re;
}try {
// some code that may throw an exception
} catch (Exception e) {
RuntimeException re = ExceptionUtils.create(RuntimeException.class, e);
throw re;
}try {
// some code that may throw an exception
} catch (Exception e) {
RuntimeException re = ExceptionUtils.create(RuntimeException.class, "An error occurred", e);
throw re;
}try {
// some code that may throw an exception
} catch (Exception e) {
RuntimeException re = ExceptionUtils.create(
RuntimeException.class,
e,
"An error occurred with code: %d",
500
);
throw re;
}try {
// some code that may throw an exception
} catch (Exception e) {
RuntimeException re = ExceptionUtils.create(RuntimeException.class, "Error", e);
throw re;
}try {
// some code that may throw an exception
} catch (Throwable t) {
IOException ioEx = ExceptionUtils.create(IOException.class, "File not found");
throw ioEx;
}try {
// some code that throws an IOException
} catch (IOException e) {
throw ExceptionUtils.throwTarget(e, RuntimeException.class); // Rethrows as RuntimeException
}try {
// some code that throws an IllegalArgumentException
} catch (IllegalArgumentException e) {
throw ExceptionUtils.throwTarget(e, MyCustomException.class); // Wraps and throws as MyCustomException
}Add the following dependency to your pom.xml:
<dependency>
<groupId>io.github.microsphere-projects</groupId>
<artifactId>microsphere-java-core</artifactId>
<version>${microsphere-java.version}</version>
</dependency>Tip: Use the BOM (
microsphere-java-dependencies) for consistent version management. See the Getting Started guide.
import io.microsphere.util.ExceptionUtils;| Method | Description |
|---|---|
getStackTrace |
Gets the stack trace from a Throwable as a String. |
wrap |
Wraps the given source exception into a new instance of the specified type. |
create |
Creates a new instance of the specified Throwable class using its default constructor. |
create |
Creates a new instance of the specified Throwable class with the provided detail message. |
create |
Creates a new instance of the specified Throwable class with the provided cause. |
create |
Creates a new instance of the specified Throwable class with the provided detail message and cause. |
create |
Creates a new instance of the specified Throwable class with a formatted detail message and cause. |
create |
Creates a new instance of the specified Throwable class using constructor arguments. |
throwTarget |
Throws the given source exception wrapped into the specified target exception type. |
public static String getStackTrace(Throwable throwable)Gets the stack trace from a Throwable as a String.
The result of this method may vary by JDK version as this method
uses Throwable#printStackTrace(java.io.PrintWriter).
On JDK1.3 and earlier, the cause exception will not be shown
unless the specified throwable alters printStackTrace.
`try {
// some code that may throw an exception
` catch (Exception e) {
String stackTrace = ExceptionUtils.getStackTrace(e);
System.out.println(stackTrace);
}
}
public static <T extends Throwable, TT extends Throwable> TT wrap(T source, Class<TT> thrownType)Wraps the given source exception into a new instance of the specified type.
If the source exception is already assignable to the target type, it is returned directly. Otherwise, a new instance of the target type is created using suitable constructor arguments derived from the source exception.
`try {
// some code that throws an IOException
` catch (IOException e) {
RuntimeException re = ExceptionUtils.wrap(e, RuntimeException.class);
throw re;
}
}
`try {
// some code that throws an IllegalArgumentException
` catch (IllegalArgumentException e) {
MyCustomException myEx = ExceptionUtils.wrap(e, MyCustomException.class);
throw myEx;
}
}
public static <T extends Throwable> T create(Class<T> throwableClass)Creates a new instance of the specified Throwable class using its default constructor.
`try {
// some code that may throw an exception
` catch (Exception e) {
RuntimeException re = ExceptionUtils.create(RuntimeException.class);
throw re;
}
}
public static <T extends Throwable> T create(Class<T> throwableClass, String message)Creates a new instance of the specified Throwable class with the provided detail message.
`try {
// some code that may throw an exception
` catch (Exception e) {
RuntimeException re = ExceptionUtils.create(RuntimeException.class, "An error occurred");
throw re;
}
}
public static <T extends Throwable> T create(Class<T> throwableClass, Throwable cause)Creates a new instance of the specified Throwable class with the provided cause.
`try {
// some code that may throw an exception
` catch (Exception e) {
RuntimeException re = ExceptionUtils.create(RuntimeException.class, e);
throw re;
}
}
public static <T extends Throwable> T create(Class<T> throwableClass, String message, Throwable cause)Creates a new instance of the specified Throwable class with the provided detail message and cause.
`try {
// some code that may throw an exception
` catch (Exception e) {
RuntimeException re = ExceptionUtils.create(RuntimeException.class, "An error occurred", e);
throw re;
}
}
public static <T extends Throwable> T create(Class<T> throwableClass, Throwable cause, String messagePattern, Object... args)Creates a new instance of the specified Throwable class with a formatted detail message and cause.
This method formats the message using the provided pattern and arguments, then creates a new instance of the target Throwable type with both the formatted message and the cause.
`try {
// some code that may throw an exception
` catch (Exception e) {
RuntimeException re = ExceptionUtils.create(
RuntimeException.class,
e,
"An error occurred with code: %d",
500
);
throw re;
}
}
public static <T extends Throwable> T create(Class<T> throwableClass, Object... args)Creates a new instance of the specified Throwable class using constructor arguments.
This method attempts to instantiate the target Throwable class by matching and using the provided constructor arguments. It is particularly useful when the exact combination of constructor parameters is known and needs to be dynamically applied.
`try {
// some code that may throw an exception
` catch (Exception e) {
RuntimeException re = ExceptionUtils.create(RuntimeException.class, "Error", e);
throw re;
}
}
`try {
// some code that may throw an exception
` catch (Throwable t) {
IOException ioEx = ExceptionUtils.create(IOException.class, "File not found");
throw ioEx;
}
}
public static <T extends Throwable, TT extends Throwable> TT throwTarget(T source, Class<TT> thrownType)Throws the given source exception wrapped into the specified target exception type.
If the source exception is already assignable to the target type, it will be rethrown directly. Otherwise, a new instance of the target type is created using suitable constructor arguments derived from the source exception.
`try {
// some code that throws an IOException
` catch (IOException e) {
throw ExceptionUtils.throwTarget(e, RuntimeException.class); // Rethrows as RuntimeException
}
}
`try {
// some code that throws an IllegalArgumentException
` catch (IllegalArgumentException e) {
throw ExceptionUtils.throwTarget(e, MyCustomException.class); // Wraps and throws as MyCustomException
}
}
This documentation was auto-generated from the source code of microsphere-java.
java-annotations
java-core
- ACLLoggerFactory
- AbstractArtifactResourceResolver
- AbstractConverter
- AbstractDeque
- AbstractEventDispatcher
- AbstractLogger
- AbstractURLClassPathHandle
- AccessibleObjectUtils
- AdditionalMetadataResourceConfigurationPropertyLoader
- AnnotationUtils
- ArchiveFileArtifactResourceResolver
- ArrayEnumeration
- ArrayStack
- ArrayUtils
- Artifact
- ArtifactDetector
- ArtifactResourceResolver
- Assert
- BannedArtifactClassLoadingExecutor
- BaseUtils
- BeanMetadata
- BeanProperty
- BeanUtils
- ByteArrayToObjectConverter
- CharSequenceComparator
- CharSequenceUtils
- CharsetUtils
- ClassDataRepository
- ClassDefinition
- ClassFileJarEntryFilter
- ClassFilter
- ClassLoaderUtils
- ClassPathResourceConfigurationPropertyLoader
- ClassPathUtils
- ClassUtils
- ClassicProcessIdResolver
- ClassicURLClassPathHandle
- CollectionUtils
- Compatible
- CompositeSubProtocolURLConnectionFactory
- CompositeURLStreamHandlerFactory
- ConditionalEventListener
- ConfigurationProperty
- ConfigurationPropertyGenerator
- ConfigurationPropertyLoader
- ConfigurationPropertyReader
- Configurer
- ConsoleURLConnection
- Constants
- ConstructorDefinition
- ConstructorUtils
- Converter
- Converters
- CustomizedThreadFactory
- DefaultConfigurationPropertyGenerator
- DefaultConfigurationPropertyReader
- DefaultDeserializer
- DefaultEntry
- DefaultSerializer
- DelegatingBlockingQueue
- DelegatingDeque
- DelegatingIterator
- DelegatingQueue
- DelegatingScheduledExecutorService
- DelegatingURLConnection
- DelegatingURLStreamHandlerFactory
- DelegatingWrapper
- Deprecation
- Deserializer
- Deserializers
- DirectEventDispatcher
- DirectoryFileFilter
- EmptyDeque
- EmptyIterable
- EmptyIterator
- EnumerationIteratorAdapter
- EnumerationUtils
- Event
- EventDispatcher
- EventListener
- ExceptionUtils
- ExecutableDefinition
- ExecutableUtils
- ExecutorUtils
- ExtendableProtocolURLStreamHandler
- FastByteArrayInputStream
- FastByteArrayOutputStream
- FieldDefinition
- FieldUtils
- FileChangedEvent
- FileChangedListener
- FileConstants
- FileExtensionFilter
- FileUtils
- FileWatchService
- Filter
- FilterOperator
- FilterUtils
- FormatUtils
- Functional
- GenericEvent
- GenericEventListener
- Handler
- Handler
- HierarchicalClassComparator
- IOFileFilter
- IOUtils
- ImmutableEntry
- IterableAdapter
- IterableUtils
- Iterators
- JDKLoggerFactory
- JSON
- JSONArray
- JSONException
- JSONObject
- JSONStringer
- JSONTokener
- JSONUtils
- JarEntryFilter
- JarUtils
- JavaType
- JmxUtils
- ListUtils
- Listenable
- Lists
- Logger
- LoggerFactory
- LoggingFileChangedListener
- MBeanAttribute
- MBeanAttributeInfoBuilder
- MBeanConstructorInfoBuilder
- MBeanDescribableBuilder
- MBeanExecutableInfoBuilder
- MBeanFeatureInfoBuilder
- MBeanInfoBuilder
- MBeanNotificationInfoBuilder
- MBeanOperationInfoBuilder
- MBeanParameterInfoBuilder
- ManagementUtils
- ManifestArtifactResourceResolver
- MapToPropertiesConverter
- MapUtils
- Maps
- MavenArtifact
- MavenArtifactResourceResolver
- MemberDefinition
- MemberUtils
- MetadataResourceConfigurationPropertyLoader
- MethodDefinition
- MethodHandleUtils
- MethodHandlesLookupUtils
- MethodUtils
- ModernProcessIdResolver
- ModernURLClassPathHandle
- Modifier
- MultiValueConverter
- MultipleType
- MutableInteger
- MutableURLStreamHandlerFactory
- NameFileFilter
- NoOpLogger
- NoOpLoggerFactory
- NoOpURLClassPathHandle
- NumberToByteConverter
- NumberToCharacterConverter
- NumberToDoubleConverter
- NumberToFloatConverter
- NumberToIntegerConverter
- NumberToLongConverter
- NumberToShortConverter
- NumberUtils
- ObjectToBooleanConverter
- ObjectToByteArrayConverter
- ObjectToByteConverter
- ObjectToCharacterConverter
- ObjectToDoubleConverter
- ObjectToFloatConverter
- ObjectToIntegerConverter
- ObjectToLongConverter
- ObjectToOptionalConverter
- ObjectToShortConverter
- ObjectToStringConverter
- PackageNameClassFilter
- PackageNameClassNameFilter
- ParallelEventDispatcher
- ParameterizedTypeImpl
- PathConstants
- Predicates
- Prioritized
- PriorityComparator
- ProcessExecutor
- ProcessIdResolver
- ProcessManager
- PropertiesToStringConverter
- PropertiesUtils
- PropertyConstants
- PropertyResourceBundleControl
- PropertyResourceBundleUtils
- ProtocolConstants
- ProxyUtils
- QueueUtils
- ReadOnlyIterator
- ReflectionUtils
- ReflectiveConfigurationPropertyGenerator
- ReflectiveDefinition
- ResourceConstants
- ReversedDeque
- Scanner
- SecurityUtils
- SeparatorConstants
- Serializer
- Serializers
- ServiceLoaderURLStreamHandlerFactory
- ServiceLoaderUtils
- ServiceLoadingURLClassPathHandle
- SetUtils
- Sets
- Sfl4jLoggerFactory
- ShutdownHookCallbacksThread
- ShutdownHookUtils
- SimpleClassScanner
- SimpleFileScanner
- SimpleJarEntryScanner
- SingletonDeque
- SingletonEnumeration
- SingletonIterator
- StackTraceUtils
- StandardFileWatchService
- StandardURLStreamHandlerFactory
- StopWatch
- StreamArtifactResourceResolver
- Streams
- StringBuilderWriter
- StringConverter
- StringDeserializer
- StringSerializer
- StringToArrayConverter
- StringToBlockingDequeConverter
- StringToBlockingQueueConverter
- StringToBooleanConverter
- StringToByteConverter
- StringToCharArrayConverter
- StringToCharacterConverter
- StringToClassConverter
- StringToCollectionConverter
- StringToDequeConverter
- StringToDoubleConverter
- StringToDurationConverter
- StringToFloatConverter
- StringToInputStreamConverter
- StringToIntegerConverter
- StringToIterableConverter
- StringToListConverter
- StringToLongConverter
- StringToMultiValueConverter
- StringToNavigableSetConverter
- StringToQueueConverter
- StringToSetConverter
- StringToShortConverter
- StringToSortedSetConverter
- StringToStringConverter
- StringToTransferQueueConverter
- StringUtils
- SubProtocolURLConnectionFactory
- SymbolConstants
- SystemUtils
- ThrowableAction
- ThrowableBiConsumer
- ThrowableBiFunction
- ThrowableConsumer
- ThrowableFunction
- ThrowableSupplier
- ThrowableUtils
- TrueClassFilter
- TrueFileFilter
- TypeArgument
- TypeFinder
- TypeUtils
- URLClassPathHandle
- URLUtils
- UnmodifiableDeque
- UnmodifiableIterator
- UnmodifiableQueue
- Utils
- ValueHolder
- Version
- VersionUtils
- VirtualMachineProcessIdResolver
- Wrapper
- WrapperProcessor
jdk-tools
lang-model
- AnnotatedElementJSONElementVisitor
- AnnotationUtils
- ClassUtils
- ConstructorUtils
- ElementUtils
- ExecutableElementComparator
- FieldUtils
- JSONAnnotationValueVisitor
- JSONElementVisitor
- LoggerUtils
- MemberUtils
- MessagerUtils
- MethodUtils
- ResolvableAnnotationValueVisitor
- StringAnnotationValue
- TypeUtils
annotation-processor
- ConfigurationPropertyAnnotationProcessor
- ConfigurationPropertyJSONElementVisitor
- FilerProcessor
- ResourceProcessor
java-test
- AbstractAnnotationProcessingTest
- Ancestor
- AnnotationProcessingTestProcessor
- ArrayTypeModel
- CollectionTypeModel
- Color
- CompilerInvocationInterceptor
- ConfigurationPropertyModel
- DefaultTestService
- GenericTestService
- MapTypeModel
- Model
- Parent
- PrimitiveTypeModel
- SimpleTypeModel
- StringArrayList
- TestAnnotation
- TestService
- TestServiceImpl