無人機動兵器ダンジョン探索ゲーム JAVAベース
トラップできていない例外をキャッチするように修正
@@ -2,6 +2,8 @@ | ||
2 | 2 | |
3 | 3 | import java.awt.*; |
4 | 4 | import java.awt.event.*; |
5 | +import java.util.logging.Level; | |
6 | +import java.util.logging.Logger; | |
5 | 7 | |
6 | 8 | /** |
7 | 9 | * ソフトウェアチップテーブル |
@@ -279,10 +281,15 @@ | ||
279 | 281 | newy = y / 40; |
280 | 282 | OkeSoftChip chip = software.get(newx, newy); |
281 | 283 | if (chip != null) { |
282 | - OkeSoftChip wkchip = (OkeSoftChip) chip.clone(); | |
283 | - if (wkchip.edit(newx, newy, software) == true) { | |
284 | - software.set(newx, newy, wkchip); | |
285 | - repaint(); | |
284 | + try { | |
285 | + OkeSoftChip wkchip = (OkeSoftChip) chip.clone(); | |
286 | + if (wkchip.edit(newx, newy, software) == true) { | |
287 | + software.set(newx, newy, wkchip); | |
288 | + repaint(); | |
289 | + } | |
290 | + } catch (CloneNotSupportedException ex) { | |
291 | + Logger.getLogger(OkeSoftPanel.class.getName()). | |
292 | + log(Level.SEVERE, null, ex); | |
286 | 293 | } |
287 | 294 | } |
288 | 295 | } |
@@ -338,18 +345,23 @@ | ||
338 | 345 | newtx = tx / 40; |
339 | 346 | newty = ty / 40; |
340 | 347 | if (newsx != newtx || newsy != newty) { |
341 | - OkeSoftChip wkchip | |
342 | - = (OkeSoftChip) software.get(newsx, newsy).clone(); | |
343 | - if (software.check_arrow(newtx, newty, wkchip.get_green_arrow()) | |
344 | - == false) { | |
345 | - wkchip.set_green_arrow(OkeSoftChip.ARROW_NONE); | |
348 | + try { | |
349 | + OkeSoftChip wkchip | |
350 | + = (OkeSoftChip) software.get(newsx, newsy).clone(); | |
351 | + if (software.check_arrow(newtx, newty, wkchip.get_green_arrow()) | |
352 | + == false) { | |
353 | + wkchip.set_green_arrow(OkeSoftChip.ARROW_NONE); | |
354 | + } | |
355 | + if (software.check_arrow(newtx, newty, wkchip.get_red_arrow()) | |
356 | + == false) { | |
357 | + wkchip.set_red_arrow(OkeSoftChip.ARROW_NONE); | |
358 | + } | |
359 | + software.set(newtx, newty, wkchip); | |
360 | + repaint(); | |
361 | + } catch (CloneNotSupportedException ex) { | |
362 | + Logger.getLogger(OkeSoftPanel.class.getName()). | |
363 | + log(Level.SEVERE, null, ex); | |
346 | 364 | } |
347 | - if (software.check_arrow(newtx, newty, wkchip.get_red_arrow()) | |
348 | - == false) { | |
349 | - wkchip.set_red_arrow(OkeSoftChip.ARROW_NONE); | |
350 | - } | |
351 | - software.set(newtx, newty, wkchip); | |
352 | - repaint(); | |
353 | 365 | } |
354 | 366 | } |
355 | 367 |