|
|
|
если файл для InputStreamReader не найден
|
|||
|---|---|---|---|
|
#18+
всем привет метод класса читает файл по определенному пути, заполняет строками из него ArrayList и возвращает его для дальнейшей работы наверняка произойдет ситуация, когда в пути к файлу будет ошибка и getResourceAsStream вернет null как правильно обработать такую ситуацию, чтобы BufferedReader не выдавал эксцепшены, а сам метод все равно возвращал ArrayList? сделал так = Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. то есть если будет ошибка в пути к файлу, то метод все равно вернет не пустой ArrayList помогите правильно сделать такой метод ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2013, 15:27:17 |
|
||
|
если файл для InputStreamReader не найден
|
|||
|---|---|---|---|
|
#18+
как он может вернуть не пустой лист - если ошибка в пути? откуда ему взять данные? В целом это делается так - 1) создается пустой аррайлист, тут у вас все ок. 2) Все что может кинуть исключение обертывается в try catch(у вас не так) 3) ловится исключение - и обычно показывается или логируется ошибка 4) возвращается пустой лист(а откуда в нем данные возьмутся?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2013, 15:35:09 |
|
||
|
если файл для InputStreamReader не найден
|
|||
|---|---|---|---|
|
#18+
забыл ник, ну я подумал, что если не произойдет ошибка в пути к файлу (if) то arr заполнится как надо, если будет ошибка, то в arr будет единственное значение = error (соответственно метод вернет не пустой ArrayList) изначально было вот так = Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. и в случае ошибки в пути - вываливались эксцепшены, что приводило к ошибке отработки метода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2013, 15:50:55 |
|
||
|
если файл для InputStreamReader не найден
|
|||
|---|---|---|---|
|
#18+
buyboy, я думаю, метод должен возвращать тот тип, который указан в объявлении, или выбрасывать эксепшн, а то гадай потом, что там, нулл, минусодин, эррор, или еще что ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2013, 15:54:58 |
|
||
|
если файл для InputStreamReader не найден
|
|||
|---|---|---|---|
|
#18+
javapeckerbuyboy, метод должен возвращать тот тип, который указан в объявлении, или выбрасывать эксепшн получается, что корректнее использовать проверку на уровне другого метода? типа если метод public static ArrayList ipList вернул этот самый ArrayList, то используем его, а если вернул эксцепшн = действуем как-то иначе... правильно я вас понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2013, 16:04:40 |
|
||
|
если файл для InputStreamReader не найден
|
|||
|---|---|---|---|
|
#18+
buyboy, эксепшн, это исключительная ситуация, означающая что выполнение метода завершилось аварийно, и результат его выполнения нельзя интерпретировать. В вашем случае просто вернуть пустой лист нормально, потому что весь остальной код будет знать, что получит лист. При необходимости можно проверить его на заполненность, без нужды знать что внутри этого метода. Если же вы где-то вставите кусок проверки типа if list.contains("error"), то намертво привяжете клиентский код к реализации вашего ipList(). Если вернете нулл, то можете получить нпе при попытке обратиться к методам list-а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2013, 16:15:32 |
|
||
|
если файл для InputStreamReader не найден
|
|||
|---|---|---|---|
|
#18+
javapeckerЕсли же вы где-то вставите кусок проверки типа if list.contains("error"), то намертво привяжете клиентский код к реализации вашего ipList(). Если вернете нулл, то можете получить нпе при попытке обратиться к методам list-а.это ценно - про привязку клиентского кода = спасибо! получается, что исходный вариант кода более правильный? только вместо e.printStackTrace(); надо сделать логирование или вообще убрать, да? p.s. и что такое нпе вот здесь = ... получить нпе при попытке ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2013, 16:22:56 |
|
||
|
если файл для InputStreamReader не найден
|
|||
|---|---|---|---|
|
#18+
buyboy, нпе это NullPointerException ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2013, 16:25:42 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38159194&tid=2129939]: |
0ms |
get settings: |
11ms |
get forum list: |
27ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
48ms |
get topic data: |
17ms |
get forum data: |
3ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 293ms |
| total: | 500ms |

| 0 / 0 |
