Exception.php 1.36 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
<?php

namespace UnicaenImport\Exception;

use RuntimeException;

/**
 *
 *
 * @author Laurent Lécluse <laurent.lecluse at unicaen.fr>
 */
Laurent Lécluse's avatar
Laurent Lécluse committed
12
13
class Exception extends RuntimeException
{
14
15
16
17
18
19
20
21
22

    /**
     * @param \Exception $exception
     * @param string     $tableName
     *
     * @return \Doctrine\DBAL\DBALException
     */
    public static function duringMajMVException(\Exception $exception, $tableName)
    {
Laurent Lécluse's avatar
Laurent Lécluse committed
23
        if (!$exception->getPrevious() instanceof \Doctrine\DBAL\Driver\OCI8\OCI8Exception) {
24
25
26
27
28
29
30
31
32
33
34
            // Non gérée
            return $exception;
        }

        $msg = $exception->getPrevious()->getMessage();

        $msg = "Erreur lors de la mise à jour de la vue métarialisée liée à la table $tableName\n\n$msg";

        return new self($msg, 0, $exception);
    }

Laurent Lécluse's avatar
Laurent Lécluse committed
35
36


37
38
39
40
41
42
43
44
    /**
     * @param \Exception $exception
     * @param string     $tableName
     *
     * @return \Doctrine\DBAL\DBALException
     */
    public static function duringMajException(\Exception $exception, $tableName)
    {
Laurent Lécluse's avatar
Laurent Lécluse committed
45
        if (!$exception->getPrevious() instanceof \Doctrine\DBAL\Driver\OCI8\OCI8Exception) {
46
47
48
49
50
51
52
53
54
55
56
57
            // Non gérée
            return $exception;
        }

        $msg = $exception->getPrevious()->getMessage();

        $msg = "Erreur lors d'une mise à jour de données dans la table $tableName\n\n$msg";

        return new self($msg, 0, $exception);
    }

}