Aucune exception de type DataAccessException peut être levée; un type d'exception doit être une sous-classe de Throwable
Mon code source comme ci-dessous.
Il a un message d'erreur "Pas une exception de type DataAccessException peut être jeté; une exception de type doit être une sous-classe de Throwable".
Je ne comprends pas pourquoi le message d'erreur apparaît.
laissez-moi savoir. thx.
package com.sds.afi.cosmos.cmm.db.impl;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.ibatis.SqlMapClientTemplate;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.stereotype.Repository;
import com.sds.afi.cosmos.cmm.db.MainDao;
@Repository
//@SuppressWarnings("unchecked") //부적절한 컴파일러의 경고를 제거
public class MainDaoImpl extends SqlMapClientDaoSupport implements MainDao {
@Autowired
private SqlMapClientTemplate sqlMapClientTemplate;
@SuppressWarnings("unchecked")
@Override
public List<HashMap> getUserInfo() throws DataAccessException {
List<HashMap> lists;
lists = sqlMapClientTemplate.queryForList("common.getList");
return lists;
}
}
source d'informationauteur verystrongjoe
Vous devez vous connecter pour publier un commentaire.
Cela peut se produire si une classe dans la hiérarchie de l'exception n'est pas sur le chemin de classe. Dans ce cas, il n'est pas possible de vérifier si l'exception n'étend Throwable, si elle est cochée ou pas, etc. D'où les erreurs. e.g super-classe de Dataaccessexception : NestedRuntimeException peut être manquant dans le chemin de classe qu'il est dans un pot de nationalités différentes c'est à dire le printemps-core.
Votre DataAccessException n'est pas une sous-classe de la classe Throwable (s'étend Throwable). Il devrait être, et sans cet héritage, votre code n'est pas compilable avec le courant de lance de la clause.
Voici un exemple: http://www.osix.net/modules/article/?id=754
Cela signifie que dans votre
getUserInfo()
méthode il n'y a pas de code qui lève l'exception. Il suffit donc de retirer lethrows
clause à partir de votre déclaration de méthode.J'étais en face d'un même problème.
Ce que j'ai fait de mal a été créé, j'ai Exception de la classe(par erreur) de mon propre.
Dans d'autres programmes que j'était en train de s'étendre classe d'Exception(par défaut), mais complier(eclipse)a été chargement Exception défini par l'utilisateur de la classe me donne la même erreur.
Donc, assurez-vous de ne pas remplacer les classe par défaut.