error handler — Translation into Russian — examples English

Premium History Favourites

Advertising

Download for Windows It’s free

Download our free app

Advertising

Advertising

No ads with Premium

These examples may contain rude words based on your search.

These examples may contain colloquial words based on your search.

обработчик ошибок

Disables the error handler in the current procedure.

Обработчик ошибок в текущей процедуре отключается.

Number of errors not handled by user code, but by the default error handler.

Число ошибок, обработанных не кодом пользователя, а обработчиком ошибок по умолчанию.

The third is to use PHP’s custom error handling functions to create your own error handler.

И, наконец, третий способ — использовать специальные средства РНР для создания собственного обработчика ошибок.

When a program error occurs in Windows, the system searches for a program

error handler.

В момент, когда в приложении Windows происходит критическая ошибка, система производит поиск программного обработчика ошибки (англ. error handler).

This extended the error handler in the Sinclair BASIC to allow extra keywords to be used.

Использование дополнительных ключевых слов в Sinclair BASIC стало возможно благодаря расширенной

процедуре обработки ошибок.

If the system does not find a program error handler, the system verifies that the program is not currently being debugged and considers the error to be unhandled.

Если система не обнаруживает зарегистрированный обработчик ошибки, система удостоверяется, что программа в данный момент не находится в режиме отладки, и ошибка считается необработанной.

Other results

In the latter case, trigger error handlers.

В последнем случае срабатывают обработчики ошибок.

This helps to eliminate errors related to server calls from handlers where server calls are not recommended.

Это позволит избежать ошибок при вызове сервера из тех обработчиков, в которых это не рекомендуется.

Very few developers could manipulate the control hierarchy at runtime without creating view state

errors or finding some of the event handlers just quit working.

Лишь немногим разработчикам удавалось успешно манипулировать иерархией элементов управления во время выполнения, избегая получения ошибок View State или не сталкиваясь с ситуацией, когда некоторые обработчики событий совершенно загадочным образом отказывались функционировать.

There are some fairly dangerous features in languages-in particular, the raise error or throw exception and the handlers.

В языках имеются некоторые довольно опасные возможности — в частности, инициирование ошибки (raise error) или исключительной ситуации, а также обработчики исключений.

The vulnerability is caused by an error in redirections handling with the «mhtml:» URI handler.

Уязвимость существует из-за ошибки в проверке входных данных при обработке «MHTML:» URI.

Exceptions Exceptions provide a way to react to exceptional circumstances (like runtime errors) in programs by transferring control to special functions called

handlers.

Исключения позволяют реагировать на исключительные ситуации в программах (например, ошибки времени выполнения) путем передачи управления специальным функциям, называемым обработчиками.

Exception handling streamlines error handling by allowing your program to define a block of code, called an exception handler, that is executed automatically when an error occurs.

Обработка исключительных ситуаций рационализирует процесс обработки

ошибок, позволяя определить в программе блок кода, называемый обработчиком исключений и выполняющийся автоматически, когда возникает ошибка.

An exception is an object that is «thrown» from the site of the error and can be «caught» by an appropriate exception handler designed to handle that particular type of error.

Исключение представляет собой объект, генерируемый на месте возникновении ошибки, который затем может быть «перехвачен» подходящим

обработчиком исключений, предназначенным для ошибок определенного типа.

The problems are caused by a buffer overflow in the internal PKCS 11 command handler and an error in the implementation of the cryptographic protection of the firmware, which bypasses the firmware check using the PKCS 1v1.5 digital signature and initiates loading the own firmware in the HSM.

Проблемы вызваны переполнением буфера во внутреннем обработчике команд PKCS#11 и

ошибкой в реализации криптографической защиты прошивок, позволяющей обойти проверку прошивки по цифровой подписи PKCS#1v1.5 и инициировать загрузку в HSM собственной прошивки.

Possibly inappropriate content

Examples are used only to help you translate the word or expression searched in various contexts. They are not selected or validated by us and can contain inappropriate terms or ideas. Please report examples to be edited or not to be displayed. Rude or colloquial translations are usually marked in red or orange.

No results found for this meaning.

More features with our free app

Voice and photo translation, offline features, synonyms, conjugation, learning games

Results: 15. Exact: 6. Elapsed time: 72 ms.

Documents Corporate solutions Conjugation Synonyms Grammar Check Help & about

Word index: 1-300, 301-600, 601-900

Expression index: 1-400, 401-800, 801-1200

Phrase index: 1-400, 401-800, 801-1200

love.errorhandler — LOVE

Views
  • Page
  • Discussion
  • View source
  • History
Available since LÖVE 11.0
It has been renamed from love. errhand.

The error handler, used to display error messages.

Note that if there’s an error in the error handler function, LÖVE will exit immediately! 

Contents

  • 1 Function
    • 1.1 Synopsis
    • 1.2 Arguments
    • 1.3 Returns
  • 2 Examples
    • 2.1 The default function used if you don’t supply your own.
    • 2.2 The default function used if you don’t supply your own.
  • 3 See Also
  • 4 Other Languages

Function

Synopsis

mainLoop = love.errorhandler( msg )

Arguments

string msg
The error message.

Returns

function mainLoop
Function which handles one frame, including events and rendering, when called. If this is nil then LÖVE exits immediately.

Examples

The default function used if you don’t supply your own.

\n]+$», «»))) end function love.errorhandler(msg) msg = tostring(msg) error_printer(msg, 2) if not love.window or not love.graphics or not love.event then return end if not love.graphics.isCreated() or not love.window.isOpen() then local success, status = pcall(love.window.setMode, 800, 600) if not success or not status then return end end — Reset state. if love.mouse then love.mouse.setVisible(true) love.mouse.setGrabbed(false) love.mouse.setRelativeMode(false) if love.mouse.isCursorSupported() then love.mouse.setCursor() end end if love.joystick then — Stop all joystick vibrations. for i,v in ipairs(love.joystick.getJoysticks()) do v:setVibration() end end if love.audio then love.audio.stop() end love.graphics.reset() local font = love.graphics.setNewFont(14) love.graphics.setColor(1, 1, 1) local trace = debug.traceback() love.graphics.origin() local sanitizedmsg = {} for char in msg:gmatch(utf8.charpattern) do table.insert(sanitizedmsg, char) end sanitizedmsg = table. concat(sanitizedmsg) local err = {} table.insert(err, «Error\n») table.insert(err, sanitizedmsg) if #sanitizedmsg ~= #msg then table.insert(err, «Invalid UTF-8 string in error message.») end table.insert(err, «\n») for l in trace:gmatch(«(.-)\n») do if not l:match(«boot.lua») then l = l:gsub(«stack traceback:», «Traceback\n») table.insert(err, l) end end local p = table.concat(err, «\n») p = p:gsub(«\t», «») p = p:gsub(«%[string \»(.-)\»%]», «%1») local function draw() if not love.graphics.isActive() then return end local pos = 70 love.graphics.clear(89/255, 157/255, 220/255) love.graphics.printf(p, pos, pos, love.graphics.getWidth() — pos) love.graphics.present() end local fullErrorText = p local function copyToClipboard() if not love.system then return end love.system.setClipboardText(fullErrorText) p = p .. «\nCopied to clipboard!» end if love.system then p = p .. «\n\nPress Ctrl+C or tap to copy this error» end return function() love. event.pump() for e, a, b, c in love.event.poll() do if e == «quit» then return 1 elseif e == «keypressed» and a == «escape» then return 1 elseif e == «keypressed» and a == «c» and love.keyboard.isDown(«lctrl», «rctrl») then copyToClipboard() elseif e == «touchpressed» then local name = love.window.getTitle() if #name == 0 or name == «Untitled» then name = «Game» end local buttons = {«OK», «Cancel»} if love.system then buttons[3] = «Copy to clipboard» end local pressed = love.window.showMessageBox(«Quit «..name..»?», «», buttons) if pressed == 1 then return 1 elseif pressed == 3 then copyToClipboard() end end end draw() if love.timer then love.timer.sleep(0.1) end end end
Available since LÖVE 11.0 and removed in LÖVE 11.4
This variant is not supported in earlier or later versions. \n]+$», «»))) end function love.errorhandler(msg) msg = tostring(msg) error_printer(msg, 2) if not love.window or not love.graphics or not love.event then return end if not love.graphics.isCreated() or not love.window.isOpen() then local success, status = pcall(love.window.setMode, 800, 600) if not success or not status then return end end — Reset state. if love.mouse then love.mouse.setVisible(true) love.mouse.setGrabbed(false) love.mouse.setRelativeMode(false) if love.mouse.isCursorSupported() then love.mouse.setCursor() end end if love.joystick then — Stop all joystick vibrations. for i,v in ipairs(love.joystick.getJoysticks()) do v:setVibration() end end if love.audio then love.audio.stop() end love.graphics.reset() local font = love.graphics.setNewFont(14) love.graphics.setColor(1, 1, 1, 1) local trace = debug.traceback() love.graphics.origin() local sanitizedmsg = {} for char in msg:gmatch(utf8.charpattern) do table.insert(sanitizedmsg, char) end sanitizedmsg = table. concat(sanitizedmsg) local err = {} table.insert(err, «Error\n») table.insert(err, sanitizedmsg) if #sanitizedmsg ~= #msg then table.insert(err, «Invalid UTF-8 string in error message.») end table.insert(err, «\n») for l in trace:gmatch(«(.-)\n») do if not l:match(«boot.lua») then l = l:gsub(«stack traceback:», «Traceback\n») table.insert(err, l) end end local p = table.concat(err, «\n») p = p:gsub(«\t», «») p = p:gsub(«%[string \»(.-)\»%]», «%1») local function draw() local pos = 70 love.graphics.clear(89/255, 157/255, 220/255) love.graphics.printf(p, pos, pos, love.graphics.getWidth() — pos) love.graphics.present() end local fullErrorText = p local function copyToClipboard() if not love.system then return end love.system.setClipboardText(fullErrorText) p = p .. «\nCopied to clipboard!» draw() end if love.system then p = p .. «\n\nPress Ctrl+C or tap to copy this error» end return function() love.event.pump() for e, a, b, c in love.event. poll() do if e == «quit» then return 1 elseif e == «keypressed» and a == «escape» then return 1 elseif e == «keypressed» and a == «c» and love.keyboard.isDown(«lctrl», «rctrl») then copyToClipboard() elseif e == «touchpressed» then local name = love.window.getTitle() if #name == 0 or name == «Untitled» then name = «Game» end local buttons = {«OK», «Cancel»} if love.system then buttons[3] = «Copy to clipboard» end local pressed = love.window.showMessageBox(«Quit «..name..»?», «», buttons) if pressed == 1 then return 1 elseif pressed == 3 then copyToClipboard() end end end draw() if love.timer then love.timer.sleep(0.1) end end end

See Also

  • love
  • love.run

Other Languages

Dansk – Deutsch – English – Español – Français – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Polski – Português – Română – Slovenský – Suomi – Svenska – Türkçe – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – ไทย – 日本語 – 正體中文 – 简体中文 – Tiếng Việt – 한국어
More info

обработчиков ошибок | Документация MuleSoft

Mule выдает ошибку обмена сообщениями (ошибка Mule) всякий раз, когда проблема возникает в потоке приложения Mule, где события Mule и содержащиеся в них сообщения обрабатываются.

Вы можете обрабатывать ошибки обмена сообщениями Mule более чем одним способом:

  • Вы можете положиться на механизм обработки ошибок по умолчанию.

  • Внутри потока можно настроить On-Error компоненты («Продолжение при ошибке» и «При распространении ошибки») внутри встроенный компонент обработчика ошибок. Эти компоненты могут содержать любое количество компоненты для обработки ошибки.

    На следующем рисунке показано, что происходит, когда обработчик событий, например HTTP-запрос или операция с базой данных выдает ошибку:

  • Вне потока можно настроить обработчик ошибок компонент и ссылаться на него из других конфигураций обработчика ошибок. глобальный Обработчик ошибок также может содержать компоненты On-Error и их содержимое.

  • Также можно настроить обработку ошибок из Попробуйте область, которая находится в потоке. Объем содержит встроенный обработчик ошибок, в котором вы можете настроить компоненты On-Error и их содержание.

Использование обработки ошибок по умолчанию для сообщений

По умолчанию необработанные ошибки обмена сообщениями регистрируются и распространяются. Когда поток обработка сообщения Mule, которое вызывает ошибку, нормальное выполнение потока останавливается, и процесс переходит к обработчику ошибок потока по умолчанию, который распространяет ошибку.

В следующем примере показана простая конфигурация приложения Mule, основанная на обработка ошибок по умолчанию вместо использования явно настроенной обработки ошибок компоненты для управления ошибкой.

XML для примера обработки ошибок по умолчанию выглядит следующим образом:

 
  


   typicode.com" port="80" />


  
  
 

После запуска приложения Mule с этой конфигурацией и запуска прослушивателя HTTP загрузив http://0.0.0.0:8081/users (например, в браузер), поток делает HTTP-запрос ( http://jsonplaceholder.typicode.com:80/somebadrequest ) для несуществующий файл. В результате консоль Anypoint Studio регистрирует и распространяет ошибка в веб-браузере.

  • Журнал консоли Anypoint Studio

    Консоль Studio выводит сообщение об ошибке. В сообщении указано, что обработчик по умолчанию, OnErrorPropagateHandler , распространяет возвращенную ошибку 404 из запроса HTTP GET. Mule идентифицирует эту ошибку как HTTP:NOT_FOUND.

     ОШИБКА 2021-01-19 18:48:50,392
      [[пример обработчиков ошибок]. http.requester.HTTP_Request_configuration.11 SelectorRunner]
      [процессор: пример обработчиков ошибок/процессоры/0; событие: 1d3baf11-5aa0-11eb-b96f-a483e7abe2b5] org.mule.runtime.core.internal.exception.OnErrorPropagateHandler:
    ******************************************************* *********************************
    Сообщение: Ошибка HTTP GET на ресурсе «http://jsonplaceholder.typicode.com:80/somebadrequest»: не найдено (404).
    Элемент : error-handlers-example/processors/0 @ error-handlers-example:error-handlers-example.xml:15 (запрос)
    Элемент DSL: 
    Тип ошибки: HTTP:NOT_FOUND
    FlowStack: в примере обработчиков ошибок (пример обработчиков ошибок/процессоры/0 @ пример обработчиков ошибок: пример обработчиков ошибок.xml:15 (запрос))
      (установите ведение журнала уровня отладки или '-Dmule.verbose.exceptions=true' для всего)
    ******************************************************* ********************************* 

    Журналы ошибок в консоли Studio содержат следующую информацию:

    • Сообщение : Описание ошибки

    • Элемент : элемент XML, который не выполнился и вызвал ошибку

    • Элемент DSL : элемент XML, который не выполнился и вызвал ошибку, выраженную в DSL

    • Тип ошибки : Тип ошибки Mule, вызванный приложением Mule

    • Flowstack : Журнал ошибок трассировки Flowstack

      В этом поле перечислены записи для каждого потока, обработавшего событие Mule, и процессор, отправивший событие в следующий поток. Последняя запись показывает поток и процессор, который вышел из строя во время обработки события.

      Начиная с Mule 4.3.0, запись Flowstack включена по умолчанию. Вы можете отключить ведение журнала Flowstack, установив для свойства конфигурации mule.flowTrace значение false 9.0038 .

  • Распространение ошибки в веб-браузере

    Описание ошибки HTTP:NOT_FOUND появляется на вкладке браузера, которую вы используйте для запуска слушателя:

     HTTP GET для ресурса 'http://jsonplaceholder.typicode.com:80/somebadrequest'
    не удалось: не найдено (404). 

    Это описание ошибки Mule появляется в браузере по двум причинам:

    • Обработчик ошибок по умолчанию использует процесс On Error Propagate ( OnErrorPropagateHandler ).

      Компонент On Error Propagate вызывает сбой потока, и прослушиватель HTTP готовит ответ об ошибке для ошибки 404 , связанной с тем, что файл не найден.

    • Прослушиватель HTTP использует ошибки по умолчанию ( error.description ) и ответы об успешном завершении ( полезная нагрузка ) на вернуть тело сообщения.

      Поскольку настраиваемые ответы не настроены, браузер показывает описание ошибки.

Использование компонентов On-Error для обработки ошибок обмена сообщениями

Вместо того, чтобы полагаться на механизм обработки ошибок по умолчанию, вы можете использовать Компоненты «При ошибке» (Продолжить при ошибке и On Error Propagate) внутри встроенного или внешнего компонента обработчика ошибок.

В следующем примере показан простой поток, настроенный в Studio для возврата результаты HTTP-запроса при срабатывании прослушивателя HTTP. в отличие от пример обработки ошибок по умолчанию, этот пример настраивает Продолжить при ошибке ( on-error-continue ) внутри встроенного Компонент Error Handler ( error-handler ), а On Error Continue содержит компонент Регистратор, записывающий описание ошибки.

XML для примера выглядит следующим образом:

 
  


  


  
  
  
  <обработчик ошибок>
    
      
    
  
 

Как и в примере обработки ошибок по умолчанию, запрошенная страница не найдена, поэтому поток возвращает ошибку 404, которую Mule идентифицирует как ошибку HTTP:NOT_FOUND. Однако в этом случае вкладка браузера, используемая для запуска HTTP listener пуст, потому что ошибка не распространяется. При ошибке Продолжить, поток в примере обрабатывается так, как если бы он успешно завершился с 200 для запрос GET, даже если страница не найдена. Прослушиватель HTTP выполняет поведение ответа об успехе по умолчанию (возврат полезная нагрузка содержимое как тело сообщения). Поскольку страница не найдена, нет контента для отображаться в браузере, поэтому вкладка браузера пуста.

Консоль Studio также выводит сообщение об ошибке (первое сообщение об ОШИБКЕ ниже) указывает, что OnErrorContinueHandler обрабатывает ошибку и печатает Сообщение об ОШИБКЕ от регистратора (вторая ОШИБКА ниже), описывающее Mule ошибка (ошибка . описание , см. Выражения селектора для ошибок Mule).

 ОШИБКА 2021-01-19 18:42:04,583
  [[пример обработчиков ошибок].http.requester.HTTP_Request_configuration.11 SelectorRunner]
  [процессор: обработчики ошибок-normalFlow/processors/0; событие: 2a95eaa1-5a9f-11eb-b96f-a483e7abe2b5] org. mule.runtime.core.internal.exception.OnErrorContinueHandler:
******************************************************* *********************************
Сообщение: Ошибка HTTP GET на ресурсе «http://jsonplaceholder.typicode.com:80/somebadrequest»: не найдено (404).
Элемент : error-handlers-normalFlow/processors/0 @ error-handlers-example:error-handlers-example.xml:15
Элемент DSL: 
Тип ошибки: HTTP:NOT_FOUND
FlowStack: в обработчиках ошибок-normalFlow (обработчики-ошибок-normalFlow/процессоры/0 @ пример-обработчиков-ошибок: пример-обработчиков-ошибок.xml:15)
  (установите ведение журнала уровня отладки или '-Dmule.verbose.exceptions=true' для всего)
******************************************************* *********************************
ОШИБКА 2021-01-1918:42:04,586
  [[пример обработчиков ошибок].http.requester.HTTP_Request_configuration.11 SelectorRunner]
  [процессор: обработчики ошибок-normalFlow/errorHandler/0/processors/0; событие: 2a95eaa1-5a9f-11eb-b96f-a483e7abe2b5] org. mule.runtime.core.internal.processor.LoggerMessageProcessor:
  Ошибка HTTP GET для ресурса «http://jsonplaceholder.typicode.com:80/somebadrequest»: не найдено (404). 

Если вместо этого вы создаете одно и то же приложение Mule с помощью On Error Propagate ( при распространении ошибки ) вместо продолжения при ошибке ( при ошибке-продолжить ), вы получают те же сообщения об ошибках в консоли Studio, но вы также видите зарегистрированное сообщение об ошибке в вашем браузере. Это поведение идентично поведение обработки ошибок по умолчанию, поскольку оба используют On Error Propagate.

Обратите внимание, что в каждом компоненте On-Error путь ошибки, который вы определяете, может включать любое количество обработчиков событий для обработки определенных типов ошибок, как именно так, как вы хотите. Вы можете выбрать определенные ошибки Mule для On-Error. компонент для обработки. Компонент обработчика ошибок направляет ошибку в первый компонент On-Error, соответствующий ошибке.

Для более сложных конфигураций обработки ошибок на уровне потока см. Введение в Mule 4: обработчики ошибок. Дополнительные сведения о продолжении при ошибке и распространении ошибки см. Компоненты On-Error.

Ссылка на глобальный обработчик ошибок

Глобальный обработчик ошибок может быть полезен, если вам нужно более одного потока или области действия чтобы обрабатывать ошибки таким же образом. Вы можете создавать конфигурации для повторного использования, предоставление ссылки на обработчик ошибок:

  • Настройка глобальной конфигурации обработки ошибок

  • Ссылка на конфигурацию обработки ошибок из потока

Настройка глобальной конфигурации обработки ошибок

Следующая конфигурация XML определяет конфигурацию обработки ошибок по умолчанию. который использует для ссылки на конфигурацию .

 
  


  


<имя потока = "некоторый поток" >
  
  

<имя обработчика ошибок = "allErrorHandler" >
  
    
  
 

В пользовательском интерфейсе Studio пример глобальной обработки ошибок выглядит следующим образом:

Пример включает два основных компонента для обработки ошибок: обработчик ошибок ( обработчик ошибок ) со встроенными компонентами, видимыми на холсте Studio и глобальная конфигурация обработки ошибок, которая не отображается на холсте. Поток ( someFlow ) в примере пользовательского интерфейса показывает, что обработчик ошибок компонент находится вне любого потока в приложении Mule.

Поскольку запрос вызывает ошибку HTTP:NOT_FOUND, консоль Studio выводит сообщение об ошибке, указывающее, что OnErrorContinueHandler обрабатывает ошибку. Конфигурации On Error Continue не распространяют ошибки, которые они обрабатывают (см. Использование компонентов On-Error для обработки ошибок обмена сообщениями).

Чтобы вместо этого настроить пример глобальной обработки ошибок через пользовательский интерфейс Studio написания конфигурации в разметке XML:

  1. Перетащите компонент обработчика ошибок из палитры Mule на холст Studio, и назовите его allErrorHandler .

    Обратите внимание, что компонент не является частью какого-либо потока.

  2. Перетащите компонент «Продолжить при ошибке» в компонент «Обработчик ошибок».

  3. Перетащите компонент Set Payload в компонент On Error Continue.

    Обратите внимание, что компонент Set Payload является примером. Вы можете использовать другие компоненты, например Logger, и вы можете написать свое собственное сообщение об ошибке внутри этого компонент. В примере Set Payload для ошибки используется переменная Mule. описание (см. переменную error в Предопределенные переменные для получения подробной информации).

  4. Создайте глобальную ссылку на обработку ошибок в Studio:

    1. Нажмите Global Elements , чтобы открыть Global Configuration Elements .

      Global Elements расположен под холстом Studio.

    2. В Global Configuration Elements щелкните Create , чтобы открыть Диалоговое окно выбора глобального типа .

    3. В диалоговом окне выберите Global Configuration -> Конфигурация , а затем щелкните OK , чтобы открыть диалоговое окно Конфигурация .

    4. В диалоговом окне выбора Configuration выберите allErrorHandler для Обработчик ошибок по умолчанию и нажмите OK .

  5. Настройте прослушиватель HTTP и компоненты HTTP-запроса, используя значения описано в XML.

  6. Убедитесь, что конфигурация XML выглядит правильно, нажав Конфигурация XML (расположен под холстом Studio).

Ссылка на конфигурацию обработки ошибок из потока

Конфигурация некоторых элементов в этих примерах предназначена только для XML.

Поток может ссылаться на глобальный обработчик ошибок, который находится вне потока. поток регистрирует все свои ошибки по ссылке.

Пример: конфигурация XML для приложения

 
    <при ошибке продолжить>
         description]"/>
    


    
    <обработчик ошибок ref="loggingErrorHandler"/>
 

В этом примере XML глобальный обработчик ошибок настраивается с помощью элемент с именем loggingErrorHandler . Ссылки на поток обработчик ошибок с .

Для ссылки на глобальную конфигурацию обработчика ошибок из потока в Studio:

  1. Из Studio перетащите компонент Error Handler из палитры Mule на холст и настраивать его компоненты через пользовательский интерфейс.

  2. В приложении Mule нажмите Configuration XML (расположен под холстом Studio).

  3. (конфигурация только для XML) В элементе введите XML для ссылка, например, .

Следующий пример ссылается на глобальный элемент On Error Continue ( ) с использованием внутри элемента . Оба требуют ручной настройки через XML конфигурации , а не через пользовательский интерфейс.

 



    


  
  
  <обработчик ошибок>
    
  
 

Документация JDK 20 — Главная

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *