* @author Dennis Eichhorn * @copyright 2013 Dennis Eichhorn * @license OMS License 1.0 * @version 1.0.0 * @link http://orange-management.com */ namespace phpOMS\DataStorage\Database; use phpOMS\DataStorage\Database\Schema\Exception\TableException; /** * Path exception class. * * @category System * @package Framework * @author OMS Development Team * @author Dennis Eichhorn * @license OMS License 1.0 * @link http://orange-management.com * @since 1.0.0 */ class DatabaseExceptionFactory { /** * Constructor. * * @param string $message Exception message * @param int $code Exception code * @param \Exception Previous exception * * @since 1.0.0 * @author Dennis Eichhorn */ public static function create(\PDOException $e) : \PDOException { switch($e->getCode()) { case '42S02': return self::createTableViewException($e); default: return $e; } } private static function createTableViewException(\PDOException $e) : \PDOException { return new TableException(TableException::findTable($e->getMessage())); } }