From 57320808868587ed3859adcc018313172324dd3a Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Thu, 15 Aug 2024 17:16:12 +0200 Subject: [PATCH] Catch ArithmeticException Close #1034 --- .../calculator/CalculatorRepository.kt | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/data/calculator/src/main/java/de/mm20/launcher2/calculator/CalculatorRepository.kt b/data/calculator/src/main/java/de/mm20/launcher2/calculator/CalculatorRepository.kt index b3a8b083..ea575b9f 100644 --- a/data/calculator/src/main/java/de/mm20/launcher2/calculator/CalculatorRepository.kt +++ b/data/calculator/src/main/java/de/mm20/launcher2/calculator/CalculatorRepository.kt @@ -54,14 +54,18 @@ class CalculatorRepositoryImpl( else -> { withContext(Dispatchers.Default) { - val exp = Expression(query) - if (exp.checkSyntax()) { - Calculator(term = query, solution = exp.calculate()) - } else { - val exp2 = Expression(query.replace(',', '.').replace(';', ',')) - if (exp2.checkSyntax()) { - Calculator(term = query, solution = exp2.calculate()) - } else null + try { + val exp = Expression(query) + if (exp.checkSyntax()) { + Calculator(term = query, solution = exp.calculate()) + } else { + val exp2 = Expression(query.replace(',', '.').replace(';', ',')) + if (exp2.checkSyntax()) { + Calculator(term = query, solution = exp2.calculate()) + } else null + } + } catch (e: ArithmeticException) { + null } } }