Driver.close() shows up an error

Hello All,
Can someone explain me the difference between close and CloseApp() in appium ?

Reason I’m eager to know because - in my attempt to use below line of code

driver.close()
driver.launchApp()

encountered an error message stating "WebDriverException: Not implemented in this context, try switching into or out of a web view”

Here I am confused, where am I trying to switch into web view ?

System Information:-

Xcode: 7.2
Appium 1.4.13
Java : 8
iOS: 9.2

Scenario:-

Crash app manually and then relaunch it in same session

Error Logs:-

I noticed error to be

Exception in thread “main” org.openqa.selenium.WebDriverException: Not implemented in this context, try switching into or out of a web view (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 8 milliseconds
Build info: version: ‘2.48.2’, revision: ‘41bccdd’, time: ‘2015-10-09 19:55:52’
System info: host: ‘VIJAYs-MacBook-Pro.local’, ip: ‘100.113.161.132’, os.name: ‘Mac OS X’, os.arch: ‘x86_64’, os.version: ‘10.10.5’, java.version: ‘1.8.0_60’
Driver info: io.appium.java_client.ios.IOSDriver
Capabilities [{networkConnectionEnabled=false, noReset=true, warnings={}, databaseEnabled=false, deviceName=iPad 2, version=9.2, fullReset=true, platform=MAC, AppName=DataGrinchApp, desired={noReset=true, platformName=iOS, deviceName=iPad 2, version=9.2, fullReset=true, AppName=DataGrinchApp}, webStorageEnabled=false, locationContextEnabled=false, browserName=iOS, takesScreenshot=true, javascriptEnabled=true, platformName=iOS}]
Session ID: 392177c4-f6b8-493a-be89-cfb6c9bf0440
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:647)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:206)
at org.openqa.selenium.remote.RemoteWebDriver.close(RemoteWebDriver.java:511)
at ios.resusefunctions.stop(resusefunctions.java:65)
at ios.crash.logContinousCrashOnline(crash.java:23)
at ios.mainclass.main(mainclass.java:46)

Solution that I implemented.

replaced driver.close() with driver.closeApp() method.