Index: src/Exceptions/Makefile.am
===================================================================
--- src/Exceptions/Makefile.am	(revision 2558294f484d39a0281f98d18f6262ab77448e87)
+++ src/Exceptions/Makefile.am	(revision 3bfd78571692d65b69ab59f338e6f7ff197af6f0)
@@ -17,5 +17,4 @@
   ShapeException.cpp \
   FormulaStringParseException.cpp \
-  SkewException.cpp \
   ZeroVectorException.cpp
 	
@@ -30,5 +29,4 @@
   NotOnSurfaceException.hpp \
   FormulaStringParseException.hpp \
-  SkewException.hpp \
   ZeroVectorException.hpp
 
Index: src/Exceptions/SkewException.cpp
===================================================================
--- src/Exceptions/SkewException.cpp	(revision 2558294f484d39a0281f98d18f6262ab77448e87)
+++ 	(revision )
@@ -1,36 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2010 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * SkewException.cpp
- *
- *  Created on: May 27, 2010
- *      Author: crueger
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include "SkewException.hpp"
-
-using namespace std;
-
-SkewException::SkewException(string _file, int _line) :
-  MathException(_file,_line)
-{}
-
-SkewException::~SkewException() throw()
-{}
-
-const char* SkewException::what() const throw()
-{
-  return "Given lines were askew.";
-}
Index: src/Exceptions/SkewException.hpp
===================================================================
--- src/Exceptions/SkewException.hpp	(revision 2558294f484d39a0281f98d18f6262ab77448e87)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/*
- * SkewException.hpp
- *
- *  Created on: May 27, 2010
- *      Author: crueger
- */
-
-#ifndef SKEWEXCEPTION_HPP_
-#define SKEWEXCEPTION_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "Exceptions/MathException.hpp"
-
-class SkewException : public MathException
-{
-public:
-  SkewException(std::string _file, int _line);
-  virtual ~SkewException() throw ();
-
-  virtual const char* what() const throw();
-};
-
-#endif /* SKEWEXCEPTION_HPP_ */
Index: src/LinearAlgebra/Exceptions.hpp
===================================================================
--- src/LinearAlgebra/Exceptions.hpp	(revision 3bfd78571692d65b69ab59f338e6f7ff197af6f0)
+++ src/LinearAlgebra/Exceptions.hpp	(revision 3bfd78571692d65b69ab59f338e6f7ff197af6f0)
@@ -0,0 +1,38 @@
+/*
+ * Exceptions.hpp
+ *
+ *  Created on: Apr 1, 2011
+ *      Author: heber
+ */
+
+#ifndef EXCEPTIONS_HPP_
+#define EXCEPTIONS_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <exception>
+#include <boost/exception.hpp>
+
+class MatrixContent;
+
+struct LinearAlgebraException : virtual std::exception, virtual boost::exception { };
+
+/** ========================== General error information ================== */
+
+/** Exception information for SkewException: determinant that is not null.
+ */
+typedef boost::error_info<struct tag_LinearAlgebraDeterminant, double> LinearAlgebraDeterminant;
+/** Exception information for SkewException: determinant that is not null.
+ */
+typedef boost::error_info<struct tag_LinearAlgebraMatrix, MatrixContent*> LinearAlgebraMatrix;
+
+/** ============================ Specific exceptions ====================== */
+
+/** Exception thrown when two lines are skew, i.e. do not intersect.
+ */
+struct SkewException : virtual LinearAlgebraException { };
+
+#endif /* EXCEPTIONS_HPP_ */
Index: src/LinearAlgebra/Line.cpp
===================================================================
--- src/LinearAlgebra/Line.cpp	(revision 2558294f484d39a0281f98d18f6262ab77448e87)
+++ src/LinearAlgebra/Line.cpp	(revision 3bfd78571692d65b69ab59f338e6f7ff197af6f0)
@@ -30,5 +30,5 @@
 #include "CodePatterns/Verbose.hpp"
 #include "Exceptions/LinearDependenceException.hpp"
-#include "Exceptions/SkewException.hpp"
+#include "Exceptions.hpp"
 #include "LinearAlgebra/defs.hpp"
 #include "LinearAlgebra/MatrixContent.hpp"
@@ -136,5 +136,5 @@
   if (fabs(M->Determinant()) > LINALG_MYEPSILON()) {
     Log() << Verbose(1) << "Determinant of coefficient matrix is NOT zero." << endl;
-    throw SkewException(__FILE__,__LINE__);
+    throw SkewException() << LinearAlgebraDeterminant(M->Determinant()) << LinearAlgebraMatrix(&(*M));
   }
 
Index: src/LinearAlgebra/unittests/LineUnitTest.cpp
===================================================================
--- src/LinearAlgebra/unittests/LineUnitTest.cpp	(revision 2558294f484d39a0281f98d18f6262ab77448e87)
+++ src/LinearAlgebra/unittests/LineUnitTest.cpp	(revision 3bfd78571692d65b69ab59f338e6f7ff197af6f0)
@@ -19,7 +19,7 @@
 
 
+#include "LinearAlgebra/Exceptions.hpp"
 #include "LinearAlgebra/Vector.hpp"
 #include "Exceptions/LinearDependenceException.hpp"
-#include "Exceptions/SkewException.hpp"
 
 #include <cppunit/CompilerOutputter.h>
Index: src/LinearAlgebra/vector_ops.cpp
===================================================================
--- src/LinearAlgebra/vector_ops.cpp	(revision 2558294f484d39a0281f98d18f6262ab77448e87)
+++ src/LinearAlgebra/vector_ops.cpp	(revision 3bfd78571692d65b69ab59f338e6f7ff197af6f0)
@@ -21,5 +21,4 @@
 
 #include "Exceptions/LinearDependenceException.hpp"
-#include "Exceptions/SkewException.hpp"
 #include "CodePatterns/Info.hpp"
 #include "CodePatterns/Log.hpp"
