[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 10562] Re: リファクタリ ングを読む会第 5 回議事録
高橋(智)です。
ちなみにC#とC++では次のようになります。
---- C# ------------------------------------------------------
public class ReturnTest {
public static void Main(string[] args) {
ReturnTest test = new ReturnTest();
int retval1 = test.foo(false);
System.Console.Out.WriteLine(retval1);
int retval2 = test.foo(true);
System.Console.Out.WriteLine(retval2);
}
public int foo(bool error) {
try {
// do something...
if( error )
throw new System.SystemException("test exception");
return 99;
}
finally {
return 100; // 20行目!!
}
}
}
---- コンパイル&実行-----------------------------------------
C:\tmp>csc ReturnTest.cs
Microsoft (R) Visual C# .NET Compiler version 7.00.9466
ReturnTest.cs(20,7): error CS0157: コントロールが finally
句の本体から出られません。
C:\tmp>
---- C++ -----------------------------------------------------
#include <stdio.h>
class Exception {
};
int foo(bool error) {
try {
if( error )
throw Exception();
return 99;
}
__finally {
return 100;
}
}
#pragma argsused
int main(int argc, char* argv[])
{
int retval1 = foo(false);
fprintf(stdout, "%d\n", retval1);
int retval2 = foo(true);
fprintf(stdout, "%d\n", retval2);
return 0;
}
---- コンパイル&実行-----------------------------------------
C:\tmp>make -f ReturnTest.mak
MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
C:\tmp>ReturnTest.exe
100
100
"TAKAHASHI, Tomohiro" wrote:
>
> Takagi Kei wrote:
> snip
> > ⇒finalyの中でrerurnを書くとどうなる?(★宿題)
snip
--
高橋智宏
Java読書会( http://www.t3-jpn.com/bof/ )
T3-Japan( http://www.t3-jpn.com/ )