From 0427eec20f4722de2daf0a32966bbd93c24a7aeb Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Wed, 7 Jul 2021 02:52:54 +0300 Subject: [PATCH] Quote invalid strings in exception messages --- libraries/stdlib/src/kotlin/time/Duration.kt | 4 ++-- libraries/stdlib/test/time/DurationTest.kt | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/libraries/stdlib/src/kotlin/time/Duration.kt b/libraries/stdlib/src/kotlin/time/Duration.kt index 5553f14292b..9bebbd919e8 100644 --- a/libraries/stdlib/src/kotlin/time/Duration.kt +++ b/libraries/stdlib/src/kotlin/time/Duration.kt @@ -186,7 +186,7 @@ public value class Duration internal constructor(private val rawValue: Long) : C public fun parse(value: String): Duration = try { parseDuration(value, strictIso = false) } catch (e: IllegalArgumentException) { - throw IllegalArgumentException("Invalid duration string format: $value", e.takeIf { it.message != null }) + throw IllegalArgumentException("Invalid duration string format: '$value'.", e) } /** @@ -198,7 +198,7 @@ public value class Duration internal constructor(private val rawValue: Long) : C public fun parseIsoString(value: String): Duration = try { parseDuration(value, strictIso = true) } catch (e: IllegalArgumentException) { - throw IllegalArgumentException("Invalid ISO duration string format: $value", e.takeIf { it.message != null }) + throw IllegalArgumentException("Invalid ISO duration string format: '$value'.", e) } /** diff --git a/libraries/stdlib/test/time/DurationTest.kt b/libraries/stdlib/test/time/DurationTest.kt index f7011bcdc20..cf18376af15 100644 --- a/libraries/stdlib/test/time/DurationTest.kt +++ b/libraries/stdlib/test/time/DurationTest.kt @@ -515,7 +515,9 @@ class DurationTest { "PT1.5H", "PT0.5D", "PT.5S", "PT0.25.25S", )) { assertNull(Duration.parseIsoStringOrNull(invalidValue), invalidValue) - assertFailsWith(invalidValue) { Duration.parseIsoString(invalidValue) } + assertFailsWith(invalidValue) { Duration.parseIsoString(invalidValue) }.let { e -> + assertContains(e.message!!, "'$invalidValue'") + } } } @@ -690,7 +692,9 @@ class DurationTest { "PT1.5H", "PT0.5D", "PT.5S", "PT0.25.25S", )) { assertNull(Duration.parseOrNull(invalidValue), invalidValue) - assertFailsWith(invalidValue) { Duration.parse(invalidValue) } + assertFailsWith(invalidValue) { Duration.parse(invalidValue) }.let { e -> + assertContains(e.message!!, "'$invalidValue'") + } } }