1 /*
2 * Copyright 2010-2025 the original author or authors.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * https://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.mybatis.spring;
17
18 import org.springframework.dao.UncategorizedDataAccessException;
19
20 /**
21 * MyBatis specific subclass of {@code UncategorizedDataAccessException}, for MyBatis system errors that do not match
22 * any concrete {@code org.springframework.dao} exceptions.
23 * <p>
24 * In MyBatis 3 {@code org.apache.ibatis.exceptions.PersistenceException} is a {@code RuntimeException}, but using this
25 * wrapper class to bring everything under a single hierarchy will be easier for client code to handle.
26 *
27 * @author Hunter Presnall
28 */
29 @SuppressWarnings("squid:MaximumInheritanceDepth") // It is the intended design
30 public class MyBatisSystemException extends UncategorizedDataAccessException {
31
32 private static final long serialVersionUID = -5284728621670758939L;
33
34 /**
35 * Instantiates a new my batis system exception.
36 *
37 * @param cause
38 * the cause
39 *
40 * @deprecated as of 3.0.4, use {@link #MyBatisSystemException(String, Throwable)} instead
41 */
42 @Deprecated(since = "3.0.4", forRemoval = true)
43 public MyBatisSystemException(Throwable cause) {
44 this(cause.getMessage(), cause);
45 }
46
47 /**
48 * Instantiates a new my batis system exception.
49 *
50 * @param msg
51 * the msg
52 * @param cause
53 * the cause
54 */
55 public MyBatisSystemException(String msg, Throwable cause) {
56 super(msg, cause);
57 }
58
59 }