diff --git a/src/stringcalculator.py b/src/stringcalculator.py
index 748f0de39cb0a6aac6adc4e8c031b3e97e9414b0..9c4ba2329e6eca184f2612930ab2735b14925e77 100644
--- a/src/stringcalculator.py
+++ b/src/stringcalculator.py
@@ -7,7 +7,18 @@ class StringCalculator(IStringCalculator):
         if not numbers:
             return 0
 
-        # Erlaubt Kommas und Zeilenumbrüche als Trennzeichen
-        tokens = re.split(r"[,\n]", numbers)
+        # Prüfe auf das ungültige Format "1,\n"
+        if ",\n" in numbers:
+            raise ValueError("Ungültiges Zahlenformat: ',\\n' ist nicht erlaubt")
 
-        return sum(map(int, tokens))
\ No newline at end of file
+        # Trenne Zahlen anhand von Komma oder Zeilenumbruch
+        tokens = re.split(r",|\n", numbers)
+
+        # Konvertiere zu Integern und finde negative Zahlen
+        numbers_list = list(map(int, tokens))
+        negative_numbers = [num for num in numbers_list if num < 0]
+
+        if negative_numbers:
+            raise ValueError(f"Negative nicht erlaubt: {negative_numbers}")
+
+        return sum(numbers_list)
\ No newline at end of file
diff --git a/tests/test_stringclaculator.py b/tests/test_stringclaculator.py
index dbafdfe3d26e924951e6fe08295623fcb7a68e8c..42e96817c0eb155dab2f9363027998de3d5b17e2 100644
--- a/tests/test_stringclaculator.py
+++ b/tests/test_stringclaculator.py
@@ -9,6 +9,9 @@
 #Feature2 Neues Trennzeichen neben dem Komma
 # Bei Eingabe von 1\n2,3 soll 6 ausgegeben werden
 # Bei Eingabe von 10\n20\n30 soll 60 ausgegeben werden
+#Feature3 Negative Zahlen ausschließen
+# Bei Eingabe von 1, -2, 3 soll ein Error erscheinen "Negative nicht erlaubt: [-2]
+# Bei Eingabe von -10\n -20, -30 soll ein Error erscheinen "Negative nicht erlaubt: [-10,-20,30]
 
 import unittest
 from src.interfaces import IStringCalculator
@@ -35,8 +38,20 @@ class TestStringCalculator(unittest.TestCase):
         self.assertEqual(self.calculator.add("1\n2,3"), 6)
         self.assertEqual(self.calculator.add("10\n20\n30"), 60)
 
+    def test_add_single_negative_number(self):
+        with self.assertRaises(ValueError) as context:
+            self.calculator.add("1,-2,3")
+        print(str(context.exception))
+        self.assertEqual(str(context.exception), "Negative nicht erlaubt: [-2]")
+
+    def test_add_multiple_negative_numbers(self):
+        with self.assertRaises(ValueError) as context:
+            self.calculator.add("-10\n-20,-30")
+        print(str(context.exception))
+        self.assertEqual(str(context.exception), "Negative nicht erlaubt: [-10, -20, -30]")
+
 if __name__ == "__main__":
     unittest.main()
 
 # python -m unittest tests.test_stringcalculator
-# python -m unittest discover -s tests
\ No newline at end of file
+# python -m unittest discover -s tests -v
\ No newline at end of file