掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.25748

一般保護違反のトラップ
投稿者---ゆか(2006/01/26 20:17:18)


はじめまして。
C言語で一般保護違反のトラップをすることはできますでしょうか?
VBでいうところの「on error goto」と同じようなことをしたいのです。
よろしくお願いします。



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:一般保護違反のトラップ 25752 RiSK 2006/01/26 22:09:27


No.25752

Re:一般保護違反のトラップ
投稿者---RiSK(2006/01/26 22:09:27)


>C言語で一般保護違反のトラップをすることはできますでしょうか?
>VBでいうところの「on error goto」と同じようなことをしたいのです。

デジャビュですな。過去ログから引っ張ってみました。



No.25313
C言語におけるエラートラップ
ぽこぺん(2006-01-14 12:38:01)


どうも いつもお世話になっています。
相変わらずC言語に苦戦しているため質問いたしました。

C言語でエラートラップのようなものはあるのでしょうか?
もし、存在するのであればどのように記述すればいいのでしょうか?

VBでの開発経験があるので、VBの話になってしまうのですが
以前VBで作成した際に、処理の最初に「On Error Goto xxxxxx」
のような記述(あやふやですが記憶が・・)をしておくと、
変数のコピーなど何らかのエラーが発生した際にエラートラップに
引っかかり、プログラムが不正終了することなくエラー処理ができたと
記憶しています。

C言語でもそのようなことが可能なのでしょうか?

以上 ご存知の方がいらしたら教えていただけると助かります。

【開発環境】
OS:Windows XP sp2
コンパイラ:VC++6.0


No.25316
Re:C言語におけるエラートラップ
YuO(2006-01-14 13:31:52)


>C言語でエラートラップのようなものはあるのでしょうか?

ないです。
通常は戻り値による判断を行います。

Win32環境に限ればSEHがありますが……。


No.25317
Re:C言語におけるエラートラップ
RiSK(2006-01-14 13:47:44)


>C言語でエラートラップのようなものはあるのでしょうか?

えーと,ちょっとずれていますが,
setjmp, longjmpとかでC++のtry-catchみたいなことができるみたい。
いつか例外を実装したいと思いながら,思うだけです。
浮動小数例外とかはsignalとかでゴニョゴニョできるみたい。

msdn参照


No.25321
Re:C言語におけるエラートラップ
RAPT(2006-01-14 14:37:19)


>setjmp, longjmpとかでC++のtry-catchみたいなことができるみたい。
以前、これは、BASIC の GOSUB みたいなことができる、と聞いたことが
ありますが、例外処理もどきができるんでしょうか・・・?
# 使ったことがないので無知ですみませんが。
# ちょっとサンプル探してみよっかな・・・


No.25334
Re:C言語におけるエラートラップ
YuO(2006-01-14 16:01:45)


>>setjmp, longjmpとかでC++のtry-catchみたいなことができるみたい。
>以前、これは、BASIC の GOSUB みたいなことができる、と聞いたことが
>ありますが、例外処理もどきができるんでしょうか・・・?

もどきなら作れるようです。
サンプルはだいたい間違っていますが。
# setjmpの戻り値を何かに代入するような式は未定義動作。

えーっと,C Magazine 2003年10月号プログラミング雑技談に載っていました。
が……setjmpの使い方間違っている……。これじゃ未定義動作……。

ここの過去ログ No.84にもありますが,サンプル全て使い方が間違っています……。


No.25421
Re:C言語におけるエラートラップ
ぽこぺん(2006-01-16 15:20:09)


YuOさん RiSKさん RAPTさん
ご回答ありがとうございました。

Try Catchのようなものはなく
あるとしても、サンプルが間違っているということなので
基本的には「ない」ものとして考えます。

まあ、エラーケース以外存在しないのですけどね。

本当にありがとうございました。
また何かありましたらよろしくお願いします。





この投稿にコメントする

削除パスワード

No.25763

Re:一般保護違反のトラップ
投稿者---ゆか(2006/01/27 09:45:45)


>RiSKさん
ありがとうございました。
昨日いろいろ調べてたのですが、「try-except」という関数が
使えそうです。
使い方がわからないのでもう少し調べてみます。




この投稿にコメントする

削除パスワード

No.25764

Re:一般保護違反のトラップ
投稿者---iijima(2006/01/27 09:57:46)


>昨日いろいろ調べてたのですが、「try-except」という関数が
>使えそうです。

それはC言語ではないのでは?(ObjectPascalかなんか...)


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧