diff --git a/src/TNL/Containers/Algorithms/PrefixSum.hpp b/src/TNL/Containers/Algorithms/PrefixSum.hpp
index 7b6ced47a7be550353227c2505f24b03f4a82f99..d3c3b3071928e89a284bf1db4acea1e8c30ccf3e 100644
--- a/src/TNL/Containers/Algorithms/PrefixSum.hpp
+++ b/src/TNL/Containers/Algorithms/PrefixSum.hpp
@@ -21,6 +21,7 @@
 #include <TNL/Containers/Algorithms/ReductionOperations.h>
 #include <TNL/Containers/Algorithms/ArrayOperations.h>
 #include <TNL/Containers/Algorithms/CudaPrefixSumKernel.h>
+#include <TNL/Exceptions/NotImplementedError.h>
 
 #ifdef CUDA_REDUCTION_PROFILING
 #include <iostream>
@@ -167,7 +168,7 @@ perform( Vector& v,
    using IndexType = typename Vector::IndexType;
    using IndexType = typename Vector::IndexType;
 #ifdef HAVE_CUDA
-   throw 0; // NOT IMPLEMENTED YET
+   throw Exceptions::NotImplementedError( "Segmented prefix sum is not implemented for CUDA." ); // NOT IMPLEMENTED YET
    /*CudaPrefixSumKernelLauncher< Type, RealType, IndexType >::start(
       ( IndexType ) ( end - begin ),
       ( IndexType ) 256,
@@ -179,8 +180,6 @@ perform( Vector& v,
 #endif
 }
 
-
-
 } // namespace Algorithms
 } // namespace Containers
 } // namespace TNL
diff --git a/src/TNL/Containers/Vector.hpp b/src/TNL/Containers/Vector.hpp
index eca2eba9640c2e25afd98ae64fa826cdc6af1a8f..855e3296f4d0de57e2fec2a6df7f2cd4c3df5d41 100644
--- a/src/TNL/Containers/Vector.hpp
+++ b/src/TNL/Containers/Vector.hpp
@@ -11,6 +11,7 @@
 #pragma once
 
 #include <TNL/Containers/Vector.h>
+#include <TNL/Exceptions/NotImplementedError.h>
 
 namespace TNL {
 namespace Containers {
@@ -394,7 +395,7 @@ void
 Vector< Real, Device, Index >::
 prefixSum( const VectorExpression& expression, const IndexType begin, const IndexType end )
 {
-
+   throw Exceptions::NotImplementedError( "Prefix sum with vector expressions is not implemented." );
 }
 
 template< typename Real,
@@ -407,7 +408,7 @@ void
 Vector< Real, Device, Index >::
 segmentedPrefixSum( const VectorExpression& expression, FlagsArray& flags, const IndexType begin, const IndexType end )
 {
-
+   throw Exceptions::NotImplementedError( "Prefix sum with vector expressions is not implemented." );
 }
 
 } // namespace Containers
diff --git a/src/TNL/Containers/VectorView.hpp b/src/TNL/Containers/VectorView.hpp
index 7c7fe5a96280e4b9fcf7609b95d69070e4e54ac8..a0142d59697e350aeb1f94298581fb2854cda735 100644
--- a/src/TNL/Containers/VectorView.hpp
+++ b/src/TNL/Containers/VectorView.hpp
@@ -14,6 +14,7 @@
 #include <TNL/Containers/Algorithms/VectorOperations.h>
 #include <TNL/Containers/VectorViewExpressions.h>
 #include <TNL/Containers/Algorithms/VectorAssignment.h>
+#include <TNL/Exceptions/NotImplementedError.h>
 
 namespace TNL {
 namespace Containers {
@@ -411,7 +412,7 @@ void
 VectorView< Real, Device, Index >::
 prefixSum( const VectorExpression& expression, const IndexType begin, const IndexType end )
 {
-
+   throw Exceptions::NotImplementedError( "Prefix sum with vector expressions is not implemented." );
 }
 
 template< typename Real,
@@ -424,7 +425,7 @@ void
 VectorView< Real, Device, Index >::
 segmentedPrefixSum( const VectorExpression& expression, FlagsArray& flags, const IndexType begin, const IndexType end )
 {
-
+   throw Exceptions::NotImplementedError( "Prefix sum with vector expressions is not implemented." );
 }
 
 } // namespace Containers