1<?php
2/**
3 * HostUnreachableException.php
4 *
5 * -Description-
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
19 *
20 * @link       https://www.librenms.org
21 * @copyright  2016 Tony Murray
22 * @author     Tony Murray <murraytony@gmail.com>
23 */
24
25namespace LibreNMS\Exceptions;
26
27class HostUnreachableException extends \Exception
28{
29    protected $reasons = [];
30
31    public function __toString()
32    {
33        $string = __CLASS__ . ": [{$this->code}]: {$this->message}\n";
34        foreach ($this->reasons as $reason) {
35            $string .= "  $reason\n";
36        }
37
38        return $string;
39    }
40
41    /**
42     * Add additional reasons
43     * @param string $message
44     */
45    public function addReason($message)
46    {
47        $this->reasons[] = $message;
48    }
49
50    /**
51     * Get the reasons
52     * @return array
53     */
54    public function getReasons()
55    {
56        return $this->reasons;
57    }
58}
59