[Multimedia] Modified the AudioIO to throw proper exceptions. 16/147516/4
authorcoderhyme <jhyo.kim@samsung.com>
Mon, 4 Sep 2017 21:42:16 +0000 (06:42 +0900)
committerJungHo Kim <jhyo.kim@samsung.com>
Fri, 29 Sep 2017 03:32:20 +0000 (03:32 +0000)
Change-Id: I30dbb7474e618f2618dece04f32b090eed7e9811
Signed-off-by: coderhyme <jhyo.kim@samsung.com>
src/Tizen.Multimedia.AudioIO/AudioIO/AudioIOUtil.cs

index d0b5d13..4ee4d94 100644 (file)
@@ -24,58 +24,42 @@ namespace Tizen.Multimedia
     {
         internal static void ThrowIfError(int errorCode, string msg = null)
         {
-            AudioIOError code = (AudioIOError)errorCode;
-            // 현재는 에러코드 최상위 exception으로 전달, 추후 상황에 맞게 케이스 처리해야 함.
-
-            msg = (msg == null ? "" : msg + " ") + $": { code }";
-
-            if (code > 0)
+            if (errorCode >= 0)
             {
-                Log.Info("Audio", "Code > 0, no error!!!!");
+                Log.Info(nameof(AudioIOUtil), "No error.");
                 return;
             }
 
+            AudioIOError code = (AudioIOError)errorCode;
+
+            msg = $"{(msg == null ? "" : msg + " : ")}{ code }";
+
             switch (code)
             {
-                case AudioIOError.None:
-                    break;
                 case AudioIOError.OutOfMemory:
-                    Log.Info("Audio", "OutOfMemoryException");
                     throw new OutOfMemoryException();
+
                 case AudioIOError.InvalidParameter:
-                    Log.Info("Audio", "ArgumentException");
                     throw new ArgumentException(msg);
-                case AudioIOError.InvalidOperation:
-                    throw new InvalidOperationException(msg);
+
+                case AudioIOError.DevicePolicyRestriction:
                 case AudioIOError.PermissionDenied:
-                    Log.Info("Audio", "Permission Denied Error");
-                    throw new InvalidOperationException(msg);
+                    throw new UnauthorizedAccessException(msg);
+
+                case AudioIOError.SoundPolicy:
+                    throw new AudioPolicyException(msg);
+
+                case AudioIOError.NotSupportedType:
                 case AudioIOError.NotSupported:
                     throw new NotSupportedException(msg);
-                case AudioIOError.DevicePolicyRestriction:
-                    Log.Info("Audio", "Device_policy_restriction");
-                    throw new Exception("Device_policy_restriction");
+
                 case AudioIOError.DeviceNotOpened:
-                    Log.Info("Audio", "Device Not Opened Error");
-                    throw new Exception("Device Not Opened Error");
                 case AudioIOError.DeviceNotClosed:
-                    Log.Info("Audio", "Device Not Closed Error");
-                    throw new Exception("Device Not Closed Error");
                 case AudioIOError.InvalidBuffer:
-                    Log.Info("Audio", "Invalid Buffer Error");
-                    throw new InvalidOperationException(msg);
-                case AudioIOError.SoundPolicy:
-                    Log.Info("Audio", "Sound Policy Error");
-                    throw new Exception(msg);
+                case AudioIOError.InvalidOperation:
                 case AudioIOError.InvalidState:
-                    Log.Info("Audio", "Invalid State Error");
-                    throw new InvalidOperationException(msg);
-                case AudioIOError.NotSupportedType:
-                    Log.Info("Audio", "Not supported stream type Error");
-                    throw new NotSupportedException(msg);
                 default:
-                    Log.Info("Audio", "Unknown Exception" + code);
-                    throw new Exception(msg);
+                    throw new InvalidOperationException(msg);
             }
         }