Commit c524e712 authored by Maxime Boucher's avatar Maxime Boucher Committed by Sara Golemon

Replace CHECK in Range.h by throw std::out_of_range

Summary:
Calling CHECK() in folly will force the program to abort in case of a failure.
On the other hand, for range checking, the standard library throws std::out_of_range for many functions.

Thus it could be a good idea to throw the same exception in folly so that errors can be handled using try {} catch (...) {} blocks.

Test Plan:
from fbcode, type:
fbconfig -r folly; fbmake opt -j32; fbmake runtests_opt -j 32

What other tests should I run?

Reviewed By: tudorb@fb.com

FB internal diff: D808204
parent d327d57f
...@@ -322,14 +322,14 @@ public: ...@@ -322,14 +322,14 @@ public:
} }
void advance(size_type n) { void advance(size_type n) {
if (n > size()) { if (UNLIKELY(n > size())) {
throw std::out_of_range("index out of range"); throw std::out_of_range("index out of range");
} }
b_ += n; b_ += n;
} }
void subtract(size_type n) { void subtract(size_type n) {
if (n > size()) { if (UNLIKELY(n > size())) {
throw std::out_of_range("index out of range"); throw std::out_of_range("index out of range");
} }
e_ -= n; e_ -= n;
...@@ -347,7 +347,7 @@ public: ...@@ -347,7 +347,7 @@ public:
Range subpiece(size_type first, Range subpiece(size_type first,
size_type length = std::string::npos) const { size_type length = std::string::npos) const {
if (first > size()) { if (UNLIKELY(first > size())) {
throw std::out_of_range("index out of range"); throw std::out_of_range("index out of range");
} }
return Range(b_ + first, return Range(b_ + first,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment