diff --git a/src/util/StringView.cxx b/src/util/StringView.cxx
index b1abf96159bc8640245d4c7108cae85898826bba..7e77e5459bd1b101ce3934ba3a51cdd043bdc554 100644
--- a/src/util/StringView.cxx
+++ b/src/util/StringView.cxx
@@ -31,14 +31,14 @@
 #include "CharUtil.hxx"
 
 void
-StringView::StripLeft()
+StringView::StripLeft() noexcept
 {
 	while (!IsEmpty() && IsWhitespaceOrNull(front()))
 		pop_front();
 }
 
 void
-StringView::StripRight()
+StringView::StripRight() noexcept
 {
 	while (!IsEmpty() && IsWhitespaceOrNull(back()))
 		pop_back();
diff --git a/src/util/StringView.hxx b/src/util/StringView.hxx
index dce93d38838189d729ef93ebe18b8eca7638faab..4a16eb9189bd6e45661e80207a67b4619fd2db88 100644
--- a/src/util/StringView.hxx
+++ b/src/util/StringView.hxx
@@ -37,94 +37,94 @@
 struct StringView : ConstBuffer<char> {
 	StringView() = default;
 
-	constexpr StringView(pointer_type _data, size_type _size)
+	constexpr StringView(pointer_type _data, size_type _size) noexcept
 		:ConstBuffer<char>(_data, _size) {}
 
-	constexpr StringView(pointer_type _begin, pointer_type _end)
+	constexpr StringView(pointer_type _begin, pointer_type _end) noexcept
 		:ConstBuffer<char>(_begin, _end - _begin) {}
 
-	StringView(pointer_type _data)
+	StringView(pointer_type _data) noexcept
 		:ConstBuffer<char>(_data,
 				   _data != nullptr ? strlen(_data) : 0) {}
 
-	constexpr StringView(std::nullptr_t n)
+	constexpr StringView(std::nullptr_t n) noexcept
 		:ConstBuffer<char>(n) {}
 
-	static constexpr StringView Empty() {
+	static constexpr StringView Empty() noexcept {
 		return StringView("", size_t(0));
 	}
 
 	template<size_t n>
-	static constexpr StringView Literal(const char (&_data)[n]) {
+	static constexpr StringView Literal(const char (&_data)[n]) noexcept {
 		static_assert(n > 0, "");
 		return {_data, n - 1};
 	}
 
-	static constexpr StringView Literal() {
+	static constexpr StringView Literal() noexcept {
 		return StringView("", size_t(0));
 	}
 
-	void SetEmpty() {
+	void SetEmpty() noexcept {
 		data = "";
 		size = 0;
 	}
 
 	gcc_pure
-	pointer_type Find(char ch) const {
+	pointer_type Find(char ch) const noexcept {
 		return (pointer_type)memchr(data, ch, size);
 	}
 
-	StringView &operator=(std::nullptr_t) {
+	StringView &operator=(std::nullptr_t) noexcept {
 		data = nullptr;
 		size = 0;
 		return *this;
 	}
 
-	StringView &operator=(pointer_type _data) {
+	StringView &operator=(pointer_type _data) noexcept {
 		data = _data;
 		size = _data != nullptr ? strlen(_data) : 0;
 		return *this;
 	}
 
 	gcc_pure
-	bool StartsWith(StringView needle) const {
+	bool StartsWith(StringView needle) const noexcept {
 		return size >= needle.size &&
 			memcmp(data, needle.data, needle.size) == 0;
 	}
 
 	gcc_pure
-	bool Equals(StringView other) const {
+	bool Equals(StringView other) const noexcept {
 		return size == other.size &&
 			memcmp(data, other.data, size) == 0;
 	}
 
 	template<size_t n>
-	bool EqualsLiteral(const char (&other)[n]) const {
+	bool EqualsLiteral(const char (&other)[n]) const noexcept {
 		return Equals(Literal(other));
 	}
 
 	gcc_pure
-	bool EqualsIgnoreCase(StringView other) const {
+	bool EqualsIgnoreCase(StringView other) const noexcept {
 		return size == other.size &&
 			strncasecmp(data, other.data, size) == 0;
 	}
 
 	template<size_t n>
-	bool EqualsLiteralIgnoreCase(const char (&other)[n]) const {
+	bool EqualsLiteralIgnoreCase(const char (&other)[n]) const noexcept {
 		return EqualsIgnoreCase(Literal(other));
 	}
 
 	/**
 	 * Skip all whitespace at the beginning.
 	 */
-	void StripLeft();
+	void StripLeft() noexcept;
 
 	/**
 	 * Skip all whitespace at the end.
 	 */
-	void StripRight();
+	void StripRight() noexcept;
 
-	void Strip() {
+	void Strip() noexcept {
 		StripLeft();
 		StripRight();
 	}