Improved index out of range exception
This commit is contained in:
parent
a3a0a150a8
commit
82a9e3a23a
@ -1,6 +1,6 @@
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from cpl_query.exceptions import ArgumentNoneException, ExceptionArgument
|
from cpl_query.exceptions import ArgumentNoneException, ExceptionArgument, IndexOutOfRangeException
|
||||||
from cpl_query.extension.iterable_abc import IterableABC
|
from cpl_query.extension.iterable_abc import IterableABC
|
||||||
|
|
||||||
|
|
||||||
@ -9,7 +9,7 @@ def first_query(_list: IterableABC) -> any:
|
|||||||
raise ArgumentNoneException(ExceptionArgument.list)
|
raise ArgumentNoneException(ExceptionArgument.list)
|
||||||
|
|
||||||
if len(_list) == 0:
|
if len(_list) == 0:
|
||||||
raise Exception('Index out of range')
|
raise IndexOutOfRangeException()
|
||||||
|
|
||||||
return _list[0]
|
return _list[0]
|
||||||
|
|
||||||
|
@ -14,7 +14,13 @@ class ExceptionArgument(Enum):
|
|||||||
class ArgumentNoneException(Exception):
|
class ArgumentNoneException(Exception):
|
||||||
|
|
||||||
def __init__(self, arg: ExceptionArgument):
|
def __init__(self, arg: ExceptionArgument):
|
||||||
Exception.__init__(self, f'Argument {arg} is None')
|
Exception.__init__(self, f'argument {arg} is None')
|
||||||
|
|
||||||
|
|
||||||
|
class IndexOutOfRangeException(Exception):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
Exception.__init__(self, f'List index out of range')
|
||||||
|
|
||||||
|
|
||||||
class InvalidTypeException(Exception):
|
class InvalidTypeException(Exception):
|
||||||
|
@ -100,6 +100,9 @@ class QueryTest(unittest.TestCase):
|
|||||||
self.assertEqual(self._tests[index], self._tests.element_at_or_default(index))
|
self.assertEqual(self._tests[index], self._tests.element_at_or_default(index))
|
||||||
self.assertIsNone(self._tests.element_at_or_default(len(self._tests)))
|
self.assertIsNone(self._tests.element_at_or_default(len(self._tests)))
|
||||||
|
|
||||||
|
test = [1, 2, 3]
|
||||||
|
t = test[100]
|
||||||
|
|
||||||
def test_first(self):
|
def test_first(self):
|
||||||
results = []
|
results = []
|
||||||
for user in self._tests:
|
for user in self._tests:
|
||||||
|
Loading…
Reference in New Issue
Block a user