Твърдения трябва да се използва за проверка на нещо, което никога не трябва да се случва, докато изключение трябва да се използва за проверка на нещо, което може да се случи. Например, функция може да се раздели на 0, така че трябва да се използва изключение, но може да се използва твърдение, за да се провери дали твърдият диск внезапно изчезва.
Твърдението добро ли е или лошо?
Не, нито отивам, нито твърдят са зли. Но и двете могат да бъдат използвани неправилно. Assert е за проверка на здравия разум. Неща, които трябва да убият програмата, ако не са правилни.
Защо твърденията са лоши?
Твърденията могат да се използват за проверка на вътрешни инварианти на реализация, като вътрешно състояние преди или след изпълнение на някакъв метод и т.н. Ако твърдението се провали, то наистина означава, че логиката на програмата е нарушена и вие можете t се възстанови от това.
Твърденията добра практика ли са?
Езиковото ръководство, въвеждащо твърденията, има някои добри насоки, които по същество са това, което току-що описах. Да, това е добра практика. В случая Spring това е особено важно, защото проверките потвърждават настройките на свойствата и т.н., които обикновено идват от XML файлове за свързване.
В кои случаи твърденията са полезни?
Ако приемем, че кодът е правилно тестван, твърденията правят няколко полезни неща: Откриват фини грешки, които иначе биха могли да останат неоткрити . Откривайте грешките по-рано след появата им, отколкото биха могли да бъдат открити иначе. Правя изявлениеза ефектите от кода, който е гарантирано верен.