diff --git a/Exception/Exception.php b/Exception/Exception.php
new file mode 100644
index 0000000000000000000000000000000000000000..1672f274951159b6e0af6fa63e80c6b66f27dfc2
--- /dev/null
+++ b/Exception/Exception.php
@@ -0,0 +1,17 @@
+<?php
+
+/*
+ * Copyright (C) 2015 IRSTEA
+ * All rights reserved.
+ */
+
+namespace Irstea\FileUploadBundle\Exception;
+
+/**
+ *
+ * @author Guillaume Perréal <guillaume.perreal@irstea.fr>
+ */
+interface Exception
+{
+    //put your code here
+}
diff --git a/Exception/RejectedFileException.php b/Exception/RejectedFileException.php
new file mode 100644
index 0000000000000000000000000000000000000000..afc1108a08240a81e797bb9ad6929fdd1522e7b7
--- /dev/null
+++ b/Exception/RejectedFileException.php
@@ -0,0 +1,46 @@
+<?php
+
+/*
+ * Copyright (C) 2015 IRSTEA
+ * All rights reserved.
+ */
+
+namespace Irstea\FileUploadBundle\Exception;
+
+use Irstea\FileUploadBundle\Model\UploadedFileInterface;
+use RuntimeException;
+
+/**
+ * Description of RejectedFileException
+ *
+ * @author Guillaume Perréal <guillaume.perreal@irstea.fr>
+ */
+class RejectedFileException extends RuntimeException implements Exception
+{
+    /**
+     *
+     * @var UploadedFileInterface
+     */
+    protected $uploadedFile;
+
+    /**
+     *
+     * @param UploadedFileInterface $file
+     * @param string $message
+     * @param int $code
+     * @param \Exception $previous
+     */
+    public function __construct(UploadedFileInterface $uploadedFile, $message, $code = 0, $previous = null)
+    {
+        parent::__construct($message, $code, $previous);
+        $this->uploadedFile = $uploadedFile;
+    }
+
+    /**
+     * @return UploadedFileInterface
+     */
+    public function getUploadedFile()
+    {
+        return $this->uploadedFile;
+    }
+}