diff --git a/src/TensorFlowNET.Core/Exceptions/KeyError.cs b/src/TensorFlowNET.Core/Exceptions/KeyError.cs
index 8cecae76..949fd309 100644
--- a/src/TensorFlowNET.Core/Exceptions/KeyError.cs
+++ b/src/TensorFlowNET.Core/Exceptions/KeyError.cs
@@ -2,7 +2,7 @@
namespace Tensorflow
{
- public class KeyError : Exception
+ public class KeyError : TensorflowException
{
public KeyError() : base()
{
diff --git a/src/TensorFlowNET.Core/Exceptions/RuntimeError.cs b/src/TensorFlowNET.Core/Exceptions/RuntimeError.cs
index 09a02a4a..6f7e4f48 100644
--- a/src/TensorFlowNET.Core/Exceptions/RuntimeError.cs
+++ b/src/TensorFlowNET.Core/Exceptions/RuntimeError.cs
@@ -2,7 +2,7 @@
namespace Tensorflow
{
- public class RuntimeError : Exception
+ public class RuntimeError : TensorflowException
{
public RuntimeError() : base()
{
diff --git a/src/TensorFlowNET.Core/Exceptions/TensorflowException.cs b/src/TensorFlowNET.Core/Exceptions/TensorflowException.cs
new file mode 100644
index 00000000..ee9eca69
--- /dev/null
+++ b/src/TensorFlowNET.Core/Exceptions/TensorflowException.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Runtime.Serialization;
+
+namespace Tensorflow
+{
+
+ ///
+ /// Serves as a base class to all exceptions of Tensorflow.NET.
+ ///
+ [Serializable]
+ public class TensorflowException : Exception
+ {
+ /// Initializes a new instance of the class.
+ public TensorflowException()
+ { }
+
+ /// Initializes a new instance of the class with serialized data.
+ /// The that holds the serialized object data about the exception being thrown.
+ /// The that contains contextual information about the source or destination.
+ /// The info parameter is null.
+ /// The class name is null or is zero (0).
+ protected TensorflowException(SerializationInfo info, StreamingContext context) : base(info, context)
+ { }
+
+ /// Initializes a new instance of the class with a specified error message.
+ /// The message that describes the error.
+ public TensorflowException(string message) : base(message)
+ { }
+
+ /// Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ /// The error message that explains the reason for the exception.
+ /// The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+ public TensorflowException(string message, Exception innerException) : base(message, innerException)
+ { }
+ }
+}
\ No newline at end of file
diff --git a/src/TensorFlowNET.Core/Exceptions/TypeError.cs b/src/TensorFlowNET.Core/Exceptions/TypeError.cs
index a4c37988..42c8e3a0 100644
--- a/src/TensorFlowNET.Core/Exceptions/TypeError.cs
+++ b/src/TensorFlowNET.Core/Exceptions/TypeError.cs
@@ -2,7 +2,7 @@
namespace Tensorflow
{
- public class TypeError : Exception
+ public class TypeError : TensorflowException
{
public TypeError() : base()
{
diff --git a/src/TensorFlowNET.Core/Exceptions/ValueError.cs b/src/TensorFlowNET.Core/Exceptions/ValueError.cs
index 825d27a1..0d6fb4e3 100644
--- a/src/TensorFlowNET.Core/Exceptions/ValueError.cs
+++ b/src/TensorFlowNET.Core/Exceptions/ValueError.cs
@@ -2,7 +2,7 @@
namespace Tensorflow
{
- public class ValueError : Exception
+ public class ValueError : TensorflowException
{
public ValueError() : base()
{