- 1
- 2
- 3
- 4
- 5
public static string CreateBrowserCacheExtension(object key)
{
//...Остальной код опущен для ясности
return "Cache=" + Math.Abs(key.GetHashCode());
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+136
public static string CreateBrowserCacheExtension(object key)
{
//...Остальной код опущен для ясности
return "Cache=" + Math.Abs(key.GetHashCode());
}
Legacy code из проекта над которым я работаю.
Косяк в том, что GetHashCode() иногда возвращает значение, равное System.Int32.MinValue.
А это в свою очередь приводит к OverflowException, в случае с Math.Abs(...);
Konardo 14.02.2014 15:37 # −16
bormand 14.02.2014 15:39 # +2
Konardo 14.02.2014 15:40 # −15
anonimb84a2f6fd141 18.02.2014 19:05 # −1
anonimb84a2f6fd141 17.02.2014 17:50 # +1
inkanus-gray 18.02.2014 16:54 # +2
anonimb84a2f6fd141 18.02.2014 17:37 # +2
>Причем программа не требует никаких прав администратора и вызывает только одну функцию масштабирования окна.
Слава богу, дрова видео в сперме вынесли в юзермод. Кто может отписаться, как сперма реагирует на падение видеодрайвера?
Хотя это же не драйвер, это видеоподсистема.
inkanus-gray 19.02.2014 10:28 # 0
Кстати, http://habrahabr.ru/post/179543//#comment_6233731
Чем многозадачность OS/2 отличается от многозадачности Винды?
3.14159265 19.02.2014 23:57 # 0
Иногда мне кажется что checked exceptions не такое и зло.
Нормальным людям они конечно мешают.
Но как иначе-то заставить говнокодеров читать спеку, доки по методам и проверять edge & corner case?
anonimb84a2f6fd141 20.02.2014 18:10 # −1
3.14159265 20.02.2014 18:33 # 0
anonimb84a2f6fd141 20.02.2014 18:37 # −1
3.14159265 21.02.2014 02:07 # 0
>Деление на ноль
Thrown when an exceptional arithmetic condition has occurred. For example, an integer "divide by zero" throws an instance of this class.
http://docs.oracle.com/javase/7/docs/api/java/lang/ArithmeticException.html
Оно не checked.
anonimb84a2f6fd141 21.02.2014 03:36 # −1
RuntimeException в сигнатуре не бывает, иначе во все места пришлось бы писать OutOfMemoryException & co.
bormand 21.02.2014 08:27 # 0
А его вообще можно обработать?
roman-kashitsyn 21.02.2014 08:40 # 0
anonimb84a2f6fd141 21.02.2014 16:35 # 0
Ай-яй-яй, подловил :)
3.14159265 21.02.2014 13:04 # 0
ORLY?
anonimb84a2f6fd141 21.02.2014 16:35 # 0
3.14159265 21.02.2014 16:51 # 0
>>писать его абсолютно необязательно.
Это немного разные вещи. Я бы сказал даже противоречивые.
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Integer.java#Integer.valueOf%28java.lang.String%29
Тем не менее их частенько пишут. Для документации - чтобы люди читали и корректно обрабатывали ошибки.
anonimb84a2f6fd141 21.02.2014 17:00 # 0
3.14159265 21.02.2014 17:01 # 0
>>IllegalArgumentException это немножко другое
class IllegalArgumentException extends RuntimeException
улавливаешь?
anonimb84a2f6fd141 21.02.2014 18:28 # 0
3.14159265 21.02.2014 19:09 # 0
3.14159265 21.02.2014 19:09 # 0
Какая среда? Сегодня пятница.
Чем т.н. среда (IDE?) отличается от вызываемого кода?
anonimb84a2f6fd141 21.02.2014 16:37 # 0
В коде, работающем с сокетами, в сигнатуре стоит IOError или как его там. Как определить, какой именно подкласс кидается, чтобы различать ошибки?
3.14159265 18.02.2014 01:34 # +3
Этот нюанс с Abs и в сырцах шарпа был проёбан.
http://govnokod.ru/3117
Если уж добавляете в свою жабу unsigned, то хоть используйте их. (Я о типе возврата Math.Abs)