Diskuze: Zachytávání výjimek ve WPF

C# .NET .NET (C# a Visual Basic) Zachytávání výjimek ve WPF American English version English version

Avatar
Ladislav Ondris:

Zdravím, chtěl bych se zeptat na váš názor ohledně zachytávání výjimek (kontroly vstupů) ve WPF. Mám na mysli výjimky týkající se komponent WPF, které vzniknou, jestliže nevyplním například TextBox apod. Je lepší si vytvořit třídu, v které budu kontrolovat všechny tyto vstupy ještě před vlastním výpočtem aplikace nebo je kontrolovat během výpočtu? Pokud bych tyto vstupy kontroloval během výpočtů, tak by to dost znepřehlednilo kód, protože bych tam měl spoustu podmínek.

A tak se ptám, jaký na to máte názor vy?

Odpovědět 21. února 17:31
Pokud neděláš chyby, nepracuješ na dostatečně těžkých problémech.
Avatar
Odpovídá na Ladislav Ondris
Michal Štěpánek:

Jsou vstupy "povinné" a pak "nepovinné", tzn., že ty povinné se musí nějak ošetřit. Když to budeš ošetřovat v "nějaké třídě", tak budeš mít akorát další třídu (podle mě zbytečnou), protože na každou událost bys musel mít stejně nějakou proceduru nebo funkci.
Ve výpočtu jen uděláš podmínku, která při nesplnění vyvolá vyjímku a tu pak nějak ošetříš...

Nahoru Odpovědět 21. února 18:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Ladislav Ondris
Michal Haňáček:

Mno já nevím, ale ověřovat vstupy formuláře až v metodě výpočtu mi přijde jako hrozná prasárna. Podle mého by bylo vhodnější udělat si nějakou validační metodu, kterou zavoláš po vyplnění formu a zároveň před výpočtem. Pokud validace projde a všechna "potřebná" pole budou korektně vyplněna, tak bych teprve přistupoval k volání výpočtu a předávání parametrů ...

Výše psané platí pokud WPF už přímo na kontrolkách nebo nějaké vyšší úrovni nemá ověřování vyplnění ... WPF jsem pěkně dlouho neviděl a zkoumat se mi to aktuálně nechce, ale skoro bych se divil kdyby to tak nebylo, nebo by nebyla nějaká prostší cesta ...

Nahoru Odpovědět 22. února 7:58
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Marian Benčat
Redaktor
Avatar
Odpovídá na Michal Haňáček
Marian Benčat:

Interface IDataErrorInfo je presne to co hledate. Implementujte na ViewModelu a mate zarucenou validaci formularu,.. muzete si definovat vlastni validacni funkce, message atp.

Jinak, idealne by jste mel skutecne validovat kazdy parametr metody, je to princip defenzivniho programovani, ale do toho vas nikdo nutit nemuze

Editováno 15. března 1:15
 
Nahoru Odpovědět 15. března 1:14
Avatar
Odpovídá na Marian Benčat
Michal Haňáček:

Zajímavá informace, díky za ní.

Nahoru Odpovědět 15. března 9:39
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.