
J
09.12.2016
10:30:27

guga
09.12.2016
10:31:45

Nikita
09.12.2016
10:32:21

Митко Соловец?
09.12.2016
10:32:50
я в охере с таких набросов

Google

Nikita
09.12.2016
10:32:50
Может, я контекст обсуждения потерял?

guga
09.12.2016
10:33:48

Митко Соловец?
09.12.2016
10:34:02
меня подача сообщения удивляет
джава говно, кресты рулят, кокококо

J
09.12.2016
10:34:21

Митко Соловец?
09.12.2016
10:34:23
дядя, ты в какой чат зашел, але?

guga
09.12.2016
10:34:35

J
09.12.2016
10:35:19
Может, я контекст обсуждения потерял?
Stream stream;
try{
stream = new Stream() (1)
stream.read/write() (2)
}catch(IOEx ex){
ex.print() // не закрыл стрим
}finally{
stream.close() /// NULL POINTER EXCEPTION
}

guga
09.12.2016
10:35:28
В целом, всегда находится человек, который говорит что хочет руками освобождать память, вот ему бы пригодился.

Nikita
09.12.2016
10:35:48
А, все ясно, ок. Говорят, что if бывает полезен

Митко Соловец?
09.12.2016
10:36:12

J
09.12.2016
10:36:20

guga
09.12.2016
10:36:25

Google

J
09.12.2016
10:36:43

Nikita
09.12.2016
10:37:39
код покеж
Нагугли классический код закрытия коннекшна к бд

guga
09.12.2016
10:37:40
finally{
try{
if (stream != null)stream.close()
} catch(IOE e)
}
что-то такое

J
09.12.2016
10:38:05
руками
освобождать
в джаве
всем кто любит писать деструкторы, рекомендую все создаваймые объекты хранить в статических полях и заботиться о них там в борьбе с утечками памяти

guga
09.12.2016
10:39:52
но ещё раз, проще взять try-with и не мучать себя
или не работать с io

J
09.12.2016
10:41:34
тоесть итого:
Stream stream;
try{
stream = new Stream() (1)
stream.read/write() (2)
}catch(IOEx ex){
ex.print()
}finally{
try{
if (stream != null)stream.close()
} catch(IOE e)
}
}
теперь внимание вопрос
а что если у тебя там три стрима матрёшкой:
zip <- buffer <- file
всё пизда проекту?
там будет 500 try catch finally
на всё комбинации

guga
09.12.2016
10:43:23
Всё так

Anton
09.12.2016
10:44:05
try( Stream stream = new Stream() ) {
}

J
09.12.2016
10:44:05
ну а чо насчёт
.open
.open
.open
.open
try{}/catch{}
.close
.close
.close
.close

Anton
09.12.2016
10:44:08
а так не?

J
09.12.2016
10:44:37

Google

Anton
09.12.2016
10:44:46
ну он сам закроется

J
09.12.2016
10:45:01

guga
09.12.2016
10:47:34

J
09.12.2016
10:48:15
нужно найти того сишника которого Sun взял на работу чтоб тот написал работу со стримами и вырвать ему ноги

Митко Соловец?
09.12.2016
10:49:24

J
09.12.2016
10:50:13
но я не понял, как твой код тещает эти проблемы.
я имеюю ввиду что стримы в жаве работают через жопень потому, что конструктор стрима, open и close валят IOException
если написать нормальный стрим где IO валит только read/write - то всё будет красиво и элегантно
открыл, отдал другому классу, тот поработал и вернул, закрыл
как там всё прошло - не важно

Vladislav
09.12.2016
10:51:57
Хотя кресты тоже рулят по сравнению с джавой, дискасс

Митко Соловец?
09.12.2016
10:53:04
чем они рулят? язык ни рыбо, ни мясо - овощ

Vladislav
09.12.2016
10:53:17
Джава очень медленно развивается, особенно огорчил анонс девятки

Митко Соловец?
09.12.2016
10:53:20
в прикладнухе он просрал джаве, сисярпу и другим языкам
в микроконтроллерах - сишка, ассемблер
и только в специфичных проектах он есть
но кресты до такой степени доразивались, что синтаксис стал похож на нечитаемое дерьмо

guga
09.12.2016
10:56:07

Митко Соловец?
09.12.2016
10:56:30

Vladislav
09.12.2016
10:56:38
мля, под крестами я подумал про шарп ?

J
09.12.2016
10:56:46
Нагугли классический код закрытия коннекшна к бд
загуглил:
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// Do stuff
...
} catch (SQLException ex) {
// Exception handling stuff
...
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) { /* ignored */}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) { /* ignored */}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) { /* ignored */}
}
}
какойто пиздец

Google

guga
09.12.2016
10:56:47
И не обязательно же всё из языка юзать.

Maksim
09.12.2016
10:58:04

Vladislav
09.12.2016
10:58:33
но есть много чего хорошего, чего в яве пока нет

J
09.12.2016
10:58:57
пишите хотябы
finally {
forceClose(rs);
forceClose(ps);
forceClose(conn);
}

Maksim
09.12.2016
10:59:29

Митко Соловец?
09.12.2016
10:59:46

J
09.12.2016
10:59:46
void forceClose(Closable c)

Admin
ERROR: S client not available

Митко Соловец?
09.12.2016
10:59:55

J
09.12.2016
11:00:00

Митко Соловец?
09.12.2016
11:00:08
автоматически менеджит твой коннекшен

J
09.12.2016
11:00:23
мы тут стримы обсуждаем из стандартного пакета

Митко Соловец?
09.12.2016
11:00:49

Vladislav
09.12.2016
11:01:31

Ivan
09.12.2016
11:02:39
Try with как раз придуманы чтобы стрииы закрывать разве нет?

J
09.12.2016
11:03:51

Vladislav
09.12.2016
11:03:58
не только стримы - всё что должно закрываться

Google

Nikita
09.12.2016
11:04:05

J
09.12.2016
11:04:36
тока в обратную сторону
засовывают требования в жопу джуну

Ivan
09.12.2016
11:05:50
Враппер закрывает все стримы внутри себя что не так?

J
09.12.2016
11:06:04
уже обсудили выше
крути до этой пикчи

Anton
09.12.2016
11:14:36

Ivan
09.12.2016
11:15:22
А есть вест код
?

J
09.12.2016
11:15:34
с чего бы ему локаться?
- открыаешь файл
- пишешь/читаешь туда немного
- заваливаешь приложение
- пытаешься удалить файл, он залокан

Vladislav
09.12.2016
11:16:01

Anton
09.12.2016
11:16:08
в доке оракла помойму написано, что он в любом случае его закроет

J
09.12.2016
11:16:12
в винде

Vladislav
09.12.2016
11:16:17
ого
может приложение недозаваливается?

J
09.12.2016
11:18:19
я хз, но проблема реальная

Igor
09.12.2016
11:19:57
кто-нибудь реактор трогал? как там логгер свой подсунуть?