Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Представьте, что вы получаете отчёт об ошибках с вашей системы, находящейся в эксплуатации. Трассировка стека указывает на метод GetProductDetails и типом выброшенного исключения является NullReferenceException. Какой из шести возможных объектов с нулевой ссылкой стал причиной ошибки?
if (условие)
{
код
}
if (условие)
{
код
}
else
{
;
}
switch ($var) {
case 'val1':
// no break;
case 'val2:
doSmth();
break;
// no default
}
А в else лучше писать короткий коммент, объясняющий почему else пустой.
if (!isset($a)) {
$a = 1; // default value
} else {
; // we have value and use it as is
}
this.userRepository = checkNotNull(userRepository);
void Process(Container c, int x)
{
if(c == null) return;
if(x <= 0) return;
c.DoStuff(x);
}
function Process(Container $c, SplInt $x)
{
if (is_null($c)) throw new NullArgumentException();
if (x <=0) throw new NonPositiveArgumentException();
$c->doStuff($x);
}
try {
Process ($c, $x);
} catch (Exception $e) {
}
?var product = this.productRepository.Get(productId);
if (product == null)
throw new InvalidOperationException("Product was null.");
Product Get(int productId)
{
var product = GetIfExist(productId);
if (product == null)
{
throw new NotFoundException(...);
}
return product;
}
Защитное программирование