exception

zxc
記事: 79
登録日時: 13年前
住所: 日本の背骨(?)あたり

exception

投稿記事 by zxc » 12年前

  何かを描写する際に、描写されると
予想している範囲外に描写しようとしたときの例外

やりたいこと
  ・範囲外の引数が与えられたら例外を投げる
  ・例外はExceptionクラスか、それを継承したものを投げる(->catchが楽)
  ・異常な値を取ったのはxかyか知りたい。(未実装)
  ・また、大きすぎるのか小さすぎるのか知りたい。(未実装)
   (下二つは投げられるクラス内部の変数で制御・・・?)

きっとこんな感じ。二重定義回避とか細かいところは適当なので読みづらい。そして一般化出来ていない(=実用性ほぼなし)し、便利でもないだろう・・・
  複数のものを描写するのであれば当然、どの「描写されるもの」が投げた例外かわからないといけないだろうなぁ。
  多分投げるクラスは投げられるクラスを持っている必要があると思う。・・・・継承の関係はいらないような気もする。わからなくなった。
  わかってくると尚のこと、先の道のりの厳しさがわかるという・・・
  どうしてもわからないのはstd::range_errorのコンストラクタに引数が必須なこと。・・・どうしているのかわからないし、入れたところでそれを外部から知る方法も知らない。単なる識別か? そもそも識別っているの? 今のところはどうでもいいかな。
  前回同様責任はとれません

CODE:

/////////////////main.cpp////////////

#include
#include"character.h"

int main(){
	character enemy;
	
	try{
		enemy.draw();
		enemy.draw(100,800);
	}

	catch(const std::range_error error){
		
		std::cout

#include"out_position.h"

#ifndef CHARACTER_H

#define CHARACTER_H

class character:public out_position{
	private:
		int x;
		int y;
public:		out_position  out_pos;
	public:
	character(int pos_x = 0,int pos_y = 0);
	~character();
	void draw(int pos_x = 0,int pos_y=0);

};
#endif

CODE:

////////////////character.cpp///////////////////////
#include

#include"character.h"

character::character(int pos_x, int pos_y):x(pos_x),y(pos_y){
}

character::~character(){}


void character::draw(int pos_x , int pos_y ){

	if (pos_x 

class out_position:public std::range_error{
	private:
		int error_x,error_y;
	public:
		void error_make( int error_value_x,int  error_value_y){
			error_x = error_value_x; 
			error_y= error_value_y;
		}

		int return_error_x(){return error_x;}
		int return_error_y(){return error_y;}

		out_position():error_x(0),error_y(0),std::range_error("error"){ }
		virtual~out_position(){};
};



アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前

Re: exception

投稿記事 by h2so5 » 12年前

範囲外への描画をしたときに例外を投げるのはどうかと思いますけどね。
範囲外の場合は単に描画しないようにするのが自然だと思います。

例えばキャラクターが左に移動して画面外に消え、また右に移動して現れるという演出をしたいとき、
単に描画を無視する仕様なら単純な座標移動で済みますが、例外を投げてしまうとそれを回避するために余計なコードを書かなければいけません。

zxc
記事: 79
登録日時: 13年前
住所: 日本の背骨(?)あたり

Re: exception

投稿記事 by zxc » 12年前

  真っ先に思いついたものでとりあえず組んでみたので、実用性とかはほとんど無いかもしれません、いや無いでしょう。例外の使用方法、どんなことが可能なのか、自分なりにある程度把握できたので無駄ではないかと・・・  産物は使い物になりませんけどね。

  画面外では描写をせずに座標の計算は継続させる、という方法は思いつきませんでした。
  今後はその方法を意識します。