過去の桐井戸端BBS (桐ver.9)
22808 一括処理でメインのルーチンとサブルーチンとを行き来していると「ネストが深い」というエラーが出る 全竹中労組タッキー 2003/10/15-12:11
画像検索ツールを作成しています。
テーブルは画像データーの入っているもの、大分類テーブル、中分類テーブル、小分類テーブルの4っつ有ります。
フォームは大分類項目表示用、中分類項目表示用、小分類項目示用、画像表示用の4枚有ります。

流れとしては、大分類フォーム項目選択 → 中分類フォーム項目選択 → 小分類フォーム項目選択 → 画像表示フォームとなります。
その中の画像で気に入ったものが有ればそこで画像を選択する。
画像が表示され見たが、納得できない。
もっと違う小分類項目にならないか、他にどんな項目があるのかということになれば。
画像表示用画面から → 小分類フォーム項目選択に逆戻りして選択するか、
そこから更に → 中分類フォーム項目選択に逆戻りして選択 → 小分類フォーム項目選択 → 画像表示フォーム
で気に入ったものがあるかどうか判断をする。

こうした作業を何回か繰り返したときに「ネストが深い」というエラーがでる。
これはメインのルーチンからサブルーチン、そこから更にサブルーチンへそこから更にサブルーチンまたは、
メインルーチンまたサブルーチンと繰り返すうち出口がないような状況になっているのではという自覚はしているのですが、
どうしたらこのような状況から抜け出せるのか、またはならないか解決策を教えて下さい。  
22809 Re:ネストが深い うにん 2003/10/15-12:36
記事番号22808へのコメント

一括処理ですか?

>あるのかということになれば。画像表示用画面から → 小分類フォーム項
>目選択に逆戻りして選択するか、そこから更に → 中分類フォーム項目選
>択に逆戻りして選択 → 小分類フォーム項目選択 → 画像表示フォーム
>で気に入ったものがあるかどうか判断をする。

逆戻りした時サブルーチンが終わるような形にしないとだめです。

>こうした作業を何回か繰り返したときにネストが深いというエラーがでる。
>これはメインのルーチンからサブルーチン、そこから更にサブルーチンへそ
>こから更にサブルーチンまたは、メーンルーチンまたサブルーチンと繰り返
>すうち出口がないような状況になっているのではという自覚はしているので

22880 Re:ネストが深い 全竹中労組タッキー 2003/10/17-12:10
記事番号22809へのコメント
今回の質問は一括処理の画像検索の質問でした。
プログラムが長くなってはと共用化を進め過ぎた、数回ならサブルーチンを終了
させなくてもという思いもありました。
それが想像を超えるサブルーチンの行き来になっていました。
”ネストが深い”エラーの症状を ”逆戻りしたときサブルーチンを終わりにしないと駄目”ということを
自分のプログラムに当てはめてみると、指摘の通りでした。
メインルーチンからサブルーチンへサブルーチンからサブルーチンへの構造を見直し、
何処までも終了を引きずらない構造にしたいと思います。
うにんさん、大変参考になりました。ありがとうございました。

戻る