Index: /trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp
===================================================================
--- /trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp	(revision 364)
+++ /trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp	(revision 365)
@@ -226,4 +226,6 @@
 		// グローバル領域をコンパイル
 		////////////////////////////////////////
+
+		UserProc::pGlobalProc = &userProc;
 
 		const UserProc *pBackUserProc = &UserProc::CompilingUserProc();
Index: /trunk/abdev/BasicCompiler_Common/error.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/error.cpp	(revision 364)
+++ /trunk/abdev/BasicCompiler_Common/error.cpp	(revision 365)
@@ -88,4 +88,5 @@
 	if(num==-106) sprintf(msg,"[警告] DLLファイル \"%s\" が見つかりません。",tempKeyWord);
 	if(num==-107) sprintf(msg,"[警告] DLL関数 \"%s\" を参照できません。",tempKeyWord);
+	if(num==-108) lstrcpy(msg,"[警告] Catch節、Finally節を持たない意味のないTryスコープです。");
 	if(num==-120) sprintf(msg,"[警告] VarPtr関数の引数にオブジェクト インスタンスが指定されました。オブジェクトの先頭アドレスを取得したいときはObjPtr関数に切り替えをお願いします。m(__)m（この警告はVarPtr→ObjPtrへの切り替えが完了したら消します（切り替えは \"適材箇所に限り\" ですので、ご注意ください！））",tempKeyWord);
 #else
Index: /trunk/abdev/BasicCompiler_Common/include/ver.h
===================================================================
--- /trunk/abdev/BasicCompiler_Common/include/ver.h	(revision 364)
+++ /trunk/abdev/BasicCompiler_Common/include/ver.h	(revision 365)
@@ -6,6 +6,6 @@
 // バージョン付加文字列
 #ifdef _AMD64_
-#define VER_INFO		"(x64) (rev.375)"
+#define VER_INFO		"(x64) (rev.376)"
 #else
-#define VER_INFO		"(rev.375)"
+#define VER_INFO		"(rev.376)"
 #endif
Index: /trunk/abdev/BasicCompiler_Common/src/Exception.cpp
===================================================================
--- /trunk/abdev/BasicCompiler_Common/src/Exception.cpp	(revision 364)
+++ /trunk/abdev/BasicCompiler_Common/src/Exception.cpp	(revision 365)
@@ -38,4 +38,5 @@
 class TryScope
 {
+	int sourceCodePos;
 	bool isDefinedFinally;
 
@@ -61,6 +62,7 @@
 
 public:
-	TryScope()
-		: isDefinedFinally( false )
+	TryScope( int sourceCodePos )
+		: sourceCodePos( sourceCodePos )
+		, isDefinedFinally( false )
 	{
 	}
@@ -69,4 +71,8 @@
 	}
 
+	int GetSourceCodePos() const
+	{
+		return sourceCodePos;
+	}
 	const CatchScopes &GetCatchScopes() const
 	{
@@ -237,5 +243,5 @@
 void TryCommand()
 {
-	tryScopes.push_back( TryScope() );
+	tryScopes.push_back( TryScope( cp ) );
 	tryScopes.back().Try();
 
@@ -315,4 +321,10 @@
 		SetError(1,NULL,cp);
 		return;
+	}
+
+	if( !tryScopes.back().IsDefinedFinally() && !tryScopes.back().IsCatched() )
+	{
+		// CatchもFinallyも存在しないとき
+		SetError(-108,NULL,tryScopes.back().GetSourceCodePos() );
 	}
 
